[英]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.