0

次のような選択オプションがあります

<select name="test" onchange="updateRecipientCount()">
<option value='123'>one</option>
</select>

オプションをクリックして選択すると、正常に動作し、問題なくフォームを送信できます。

jQueryを介してオプションをリモートで選択する最近の変更の後(別のフィールドから値を取得し、オートコンプリートと言って、値に基づいてオプションで選択します)、画面上で選択されていることがわかりますが、そうですあるべきように振る舞わない。

 $('select option[value='123']').attr('selected', true);

フォームを送信すると、次のエラーが発生し、select onchange 関数もトリガーされません。

java.lang.IllegalArgumentException: No Index Value

ここで何が問題なのか誰にも分かりますか? jquery を使用してオプションを選択すると、このエラーが発生するのはなぜですか?!

4

2 に答える 2

0

idに属性を追加しますselect

<select name="test" id="test" onchange="updateRecipientCount()">

$('#test').val(123); //this will select the option with value 123.

複数選択の例:

<select name="test" id="test" onchange="updateRecipientCount();" multiple="multiple">
<option value='123'>one</option>
<option value='123'>two</option>
</select>

<script type="text/javascript">
$(document).ready(function(){
    updateRecipientCount();  // For testing
});

function updateRecipientCount(){
    var ary = [123, 123]; // test data
    $("#test").val(ary);
}
</script>
于 2013-03-25T04:26:48.403 に答える
0

セレクターの引用符が間違っています。また、選択したattr値は次のようにする必要がありますselected

$('select option[value="123"]').attr('selected', 'selected');
于 2013-03-25T04:27:02.200 に答える