3

私は今朝同様の質問をしました。シーケンスではなく値でドロップダウンを選択する方法です。

問題は、複数選択ドロップダウンを使用して、シーケンスではなく値でオプションを選択する方法です。(たとえば、それぞれの主キー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]); 

ここで別のトリックを適用する必要がありますか?ありがとう

4

2 に答える 2

1

これを試して

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);​
于 2012-09-25T23:15:12.063 に答える
1

これは、各反復で以前に選択した値をオーバーライドするため、配列を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);
于 2012-09-25T23:16:33.013 に答える