2016-11-11 195 views
0

我正在创建一个表单。我有两个字段,1.默认值字段和2.预览字段。两个都是多选字段。用户将手动将选项添加到多选。只要用户在默认值中选择了一个选项,相同的值应显示为在预览字段中选定。当用户删除一个选项时,应该取消选择相同的选项。这是我为这个多选选项写的onchange事件:多选择onchange事件jquery

$("#MultiSelect_DefaultValues").change(function() { 
      alert($(this).val()); 
      $("#MultiSelect_Preview").val($(this).val()); 
     }); 

我在警报中得到正确的值。但是,在预览字段中,没有任何反应。所有可用的默认值字段的选项也可在预览字段中使用。但是,在预览字段中未选择在默认值字段中选择的选项。这有什么问题?我应该更改哪些内容,以便默认字段中的更改也反映在预览字段中?

回答

1

你说你正在使用选择2所以执行是这样的:

$("#MultiSelect_DefaultValues").change(function() { 
    alert($(this).val()); 
    var prevSelect = $("#MultiSelect_Preview").select2(); 
    prevSelect.val($(this).val()).trigger('change'); 
}); 
0

的选项变量的值需要匹配这一点,如果我理解你想做到这一点是正确的。

例如

$("#MultiSelect_DefaultValues").change(function() { 
 
    console.log($(this).val()); 
 
    $("#MultiSelect_Preview").val($(this).val()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="MultiSelect_DefaultValues" multiple> 
 
    <option value="one">One</option> 
 
    <option value="two">Two</option> 
 
    <option value="three">Three</option> 
 
</select> 
 
<select id="MultiSelect_Preview" multiple> 
 
    <option value="one">One</option> 
 
    <option value="two">Two</option> 
 
    <option value="three">Three</option> 
 
</select>

0

您可以使用此代码

<script> 
$("#MultiSelect_DefaultValues").change(function() { 
    $('select[id="MultiSelect_Preview"]').find('option[value=' + $(this).val() + ']').attr("selected", true); 
}); 
</script>