首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多个select中获得动态变化的选择值

从多个select中获得动态变化的选择值
EN

Stack Overflow用户
提问于 2018-07-30 12:51:33
回答 3查看 2.1K关注 0票数 1

我目前正在开发一个动态表单,它使用户能够添加尽可能多的变体。这个表格可以添加,有价格,大小和颜色。大小和颜色是select2复选框,使用户能够选择多个东西。表格:

代码语言:javascript
复制
<div class="col-sm-4">
   <label>Kleuren</label>
   <select name="colors[{{$i}}][]" id='color-options' class="form-control multiple-select" multiple="multiple">
   @foreach($colors as $id=>$color)
      <option value="{{$id}}">{{$color}}</option>
   @endforeach
   </select>
</div>

当查看HTML代码时,我有多个这样的表单,它们的名称是:colors[0][]colors[1][]colors[2][]等等。

如何在新的div中打印选定的新颜色的值?我到目前为止所制定的守则:

代码语言:javascript
复制
    $(document).ready(function() {
        $('.multiple-select').select2({
            language: 'nl'
        });
        $('.summernote').summernote();

        var addVariantButton = document.getElementById('addVariant[0]');
        addVariantButton.addEventListener('click', function(){
            addVariant(0);
        });

        var colorSelected = document.getElementsByName('colors[0][]');
        colorSelected.addEventListener("click", displayColorSelected);
    });

    function displayColorSelected() {
        var selected_value = document.getElementById("color-options").value;
        console.log(selected_value);
    } 

但这只适用于第一颜色输入形式,但我如何使它成为一个更动态的功能,以获得所有的颜色输入?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-30 13:01:15

可以获得数组中的所有选定值,如下所示:

代码语言:javascript
复制
function displayColorSelected() {
    var selected_value = $("[id='color-options']").toArray().map(x => $(x).val());
    console.log(selected_value);
}

注意: id选择器将始终返回带有该id的第一个元素。所以你只获得了第一选择的价值。

您可以使用attribute选择器([])来替代,它将找到每个具有给定id的元素。因此,在这里,$("[id='color-options']").toArray()将发现每个id等于color-options的元素,而map(x => $(x).val())只会从元素数组返回值部分。

票数 1
EN

Stack Overflow用户

发布于 2018-07-30 12:54:30

添加所有的选择类(例如“颜色-选择”),并运行所有的选择-

$('.color-select').each(function() { console.log($(this).val()); })

票数 1
EN

Stack Overflow用户

发布于 2018-07-30 13:01:38

您可能需要委托事件侦听器。

代码语言:javascript
复制
 document.addEventListener('event',function(e){
    if(element){//do something}
 })

由于您使用的是jquery,所以更容易。

代码语言:javascript
复制
$(document).on('event','element',function());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51594399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档