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>

これは単なる単純化です。実際には、異なるグループのオプションが同じ値を持つ状況が発生する可能性があります。

これoptgroupは素晴らしいハックですが、グループごとに選択したオプションを設定する方法に関して問題が発生しています。次のコードがあります。

$('#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 はoptgroupID で、2 番目は値です。どうすればこれを達成できますか? この件に関する情報は見つかりませんでした。

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

より簡単な方法は次のとおりです。

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

于 2016-10-26T16:14:42.187 に答える
0

これを試して

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