Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery为问题选择了DropDownList_Javascript_Jquery_Asp.net Mvc 4_Razor - Fatal编程技术网

Javascript jquery为问题选择了DropDownList

Javascript jquery为问题选择了DropDownList,javascript,jquery,asp.net-mvc-4,razor,Javascript,Jquery,Asp.net Mvc 4,Razor,我正在使用为dropdownlistfor选择的jquery,它工作得非常好。我在jquery中放置了一个逻辑,当选择发生变化时,它会自动检查所有添加的元素。但当我试图删除某些元素时,它不允许我删除它,事实上它被卡住了。如果我对我创建的jquery脚本进行注释,它就可以正常工作。我假设jquery脚本中存在问题 查看 @Html.ListBoxFor(m => m.Mechanism.Controls, listofControls, new { @class = "chosen-sele

我正在使用为dropdownlistfor选择的jquery,它工作得非常好。我在jquery中放置了一个逻辑,当选择发生变化时,它会自动检查所有添加的元素。但当我试图删除某些元素时,它不允许我删除它,事实上它被卡住了。如果我对我创建的jquery脚本进行注释,它就可以正常工作。我假设jquery脚本中存在问题

查看

@Html.ListBoxFor(m => m.Mechanism.Controls, listofControls, new { @class = "chosen-select", @style = "width:350px", multiple = "multiple", @id="cmbcontrols"  })

<script>

$(document).on('change', '#cmbcontrols', function () {

    var dropdown = $("#cmbcontrols").val();
    var isTrue = false;

    var selectedOptions = dropdown.toString().split(',');

    for (var i in selectedOptions) {
        if (selectedOptions[i] == 2) {
            isTrue = true;
        }

        i++;
    }

    if (isTrue) {
        //sms mode is selected            
        $('#txtvalueselector').show();
        $('#lblvalueselector').show();
    }
    else {
        //dial mode is selected
        $('#txtvalueselector').hide();
        $('#lblvalueselector').hide();
    }

});
</script>
@Html.ListBoxFor(m=>m.Mechanism.Controls,listofControls,新建{@class=“selected select”、@style=“width:350px”、multiple=“multiple”、@id=“cmbcontrols”})
$(文档).on('change','#cmbcontrols',函数(){
var下拉列表=$(“#cmbcontrols”).val();
var isTrue=假;
var selectedOptions=dropdown.toString().split(',');
用于(所选选项中的var i){
如果(选择选项[i]==2){
isTrue=真;
}
i++;
}
如果(是真的){
//选择sms模式
$('#txtvalueselector').show();
$('#lblvalueselector').show();
}
否则{
//选择拨号模式
$('#txtvalueselector').hide();
$('#lblvalueselector').hide();
}
});

我想问题在于for循环,您在i中获得了项,但将其视为数组的索引。试试这个代码

  $.each(selectedOptions,function(i,obj) {
        if (obj == 2) {
            isTrue = true;
            return false;
        }
    });

第一个问题是您的for(selectedOptions中的var i){if(selectedOptions[i]==2)@h,,ad:如果此问题已解决,请将答案标记为有用