繁体   English   中英

使用jquery按值选择多选DropDown

[英]Select a Multi-select DropDown by values with jquery

我今天早上问了一个类似的问题 ,如何按价值而不是按顺序选择下拉菜单。

现在的问题是如何使用多选下拉列表并按值而不是顺序选择选项。 (例如,我想通过各自的主键1和4选择a1和a3)

<select id="id_deals-sales_item" multiple="multiple">
  <option value="1">a1</option>
  <option value="2">a2</option>
  <option value="4">a3</option>
</select>

顺序的旧方式:

for (i=0; i<data[0].fields['sales_item'].length;i++)
    $('#id_deals-sales_item>option:eq(' + (data[0].fields['sales_item'][i]) + ')').prop('selected', true);

我希望在这里使用val()应用相同的解决方案,但它不起作用。

for (i=0; i<=data[0].fields['sales_item'].length;i++)
    $('#id_deals-sales_item').val(data[0].fields['sales_item'][i]); 

我必须在这里应用不同的技巧吗? 谢谢

尝试这个

for (i=0; i<=data[0].fields['sales_item'].length;i++)
    $("#id_deals-sales_item option[value='" +data[0].fields['sales_item'][i] + "']").prop('selected', true);​

那是因为你在每次迭代中覆盖先前选择的值,你应该将数组传递给val方法,试试这个:

var vals = [];
for (i=0; i<=data[0].fields['sales_item'].length;i++) {
    vals.push(data[0].fields['sales_item'][i]); 
}

$("#id_deals-sales_item").val(vals);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM