根据先前的选择更改选择

时间:2018-01-30 16:22:49

标签: jquery drop-down-menu

我有两个选择,第一个是visibile,用户可以选择一个选项 第二个选择是隐藏的,我需要根据第一个选择设置一个值。

第二个选择已经填充,我需要选择一个选项。

我们假设我有这个:

<li class="select-province-form">
   <select name="select1">
       <option value="A">AA</option>
       <option value="B">BB</option>
       <option value="C">CC</option>
    </select>
</li>

这是第二个:

<li class="select-regioni-form">
    <select name="select2">
        <option value="AA">AAAA</option>
        <option value="BB">BBBB</option>
        <option value="CC">CCCC</option>
    </select>
</li>

现在我有了这段代码:

$(document.body).on('change',"li.select-province-form select",function (e) {
        var regione = '';
        var selectedProv = this.value;
        $.each( SpElencoRegioni[0], function( key, val ) {

            if(key == selectedProv){
                regione = val;
               $('li.select-regioni-form select').val(regione);
                break;
            }
        });

    });

SpElencoRegioni:

var SpElencoRegioni = [{"A":"AA","B":"BB","C":"CC"}];

问题在于,在第二次选择中没有任何事情发生。

1 个答案:

答案 0 :(得分:0)

您的脚本中存在语法错误。你不能break如果你不在一个周期内,而jQuery的each不是一个循环,它就是一种方法。

要打破它,你应该return false

修改

在评论中你说它不起作用,但下面的代码段(我刚刚更改了代码的顺序并将我在答案中提到的return false)有所不同:)< / p>

这不起作用的一些原因是因为您要么没有正确导入jQuery,要么SpElencoRegioni在回调范围内不可用,或者您的DOM结构没有反映您在JS代码中使用的选择器。请检查。

&#13;
&#13;
var SpElencoRegioni = [{"A":"AA","B":"BB","C":"CC"}];

$(document.body).on('change',"li.select-province-form select",function (e) {
    var regione = '';
    var selectedProv = this.value;
    $.each( SpElencoRegioni[0], function( key, val ) {

        if(key == selectedProv){
            regione = val;
           $('li.select-regioni-form select').val(regione);
           return false;
        }
    });

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="select-province-form">
       <select name="select1">
           <option value="A">AA</option>
           <option value="B">BB</option>
           <option value="C">CC</option>
        </select>
    </li>


    <li class="select-regioni-form">
        <select name="select2">
            <option value="AA">AAAA</option>
            <option value="BB">BBBB</option>
            <option value="CC">CCCC</option>
        </select>
    </li>
&#13;
&#13;
&#13;