0

我有以下选择:

<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>

现在这只是一个简化,实际上我可能会遇到不同组的选项具有相同值的情况。

现在我所做的是使用 ID 推迟它们,optgroup这是一个很好的 hack,但我遇到了如何按组设置选定选项的问题。我有以下代码:

$('#prices_table tbody tr:last').children().eq(0).children()
  .val(item.product_id).attr('selected','selected');

现在item.product_id包含的值,当然可以设置错误。我有一个包含如下值的二维数组:

values[item.provider_id][item.product_id]

其中第一个 ID 是optgroupid,第二个是值。我怎样才能做到这一点?我没有找到有关该主题的信息。

4

3 回答 3

1

试试这个:

$(function() {
    var groupId = "1";
    var value = "70";

    $("#pricelist_product #'" + groupId +  "' option[value='" + value + "']").prop("selected", true);
});
于 2012-12-09T18:19:45.333 回答
0

试试这个

$("#pricelist_product > optgroup[id='" + item.provider_id +"']").find("option[value='" + item.product_id + "']").attr("selected","selected");
于 2012-12-09T18:29:05.007 回答
0

这是一个更简单的方法:

$(yourInputSelector).val(item.product_id);

于 2016-10-26T16:14:42.187 回答