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