我有以下选择:
<select name="pricelist_product[]" id="pricelist_product">
<option value="error" disabled="disabled">SELECT PRODUCT</option>
<optgroup label="Cellcom" id="1">
<option value="70">75</option>"
<option value="125">125</option>
<option value="199">199</option>
<option value="5">card bonus 5</option>
</optgroup>
<optgroup label="Orange" id="2">
<option value="70"> 70</option>
<option value="130"> 130</option>
<option value="135"> 135 </option>
</optgroup>
</select>
现在这只是一种简化,实际上我可能会遇到来自不同群体的选项具有相同价值的情况。
现在我所做的是使用optgroup
的ID来推迟他们,这是一个很好的黑客,但我遇到的问题是如何按组设置选定的选项。我有以下代码:
$('#prices_table tbody tr:last').children().eq(0).children()
.val(item.product_id).attr('selected','selected');
现在item.product_id
包含值,当然可以设置错误的值。我有一个2D数组,其中包含如下值:
values[item.provider_id][item.product_id]
第一个ID是optgroup
id,第二个ID是值。我怎样才能做到这一点?我没有找到关于这个主题的信息。
答案 0 :(得分:1)
试试这个:
$(function() {
var groupId = "1";
var value = "70";
$("#pricelist_product #'" + groupId + "' option[value='" + value + "']").prop("selected", true);
});
答案 1 :(得分:0)
试试这个
$("#pricelist_product > optgroup[id='" + item.provider_id +"']").find("option[value='" + item.product_id + "']").attr("selected","selected");
答案 2 :(得分:0)
这是一种更简单的方法:
$(yourInputSelector).val(item.product_id);