7

我有 fe 10 个选项(“一”、“二”、“三”、...)的选择。加载页面时,第一个选项“一个”被选中。

在我设置为第五个选项的函数中

$("myselect").val('five');

事实上,现在第五个选项显示在选择中,并且值也设置正确。

但是现在我在我的表单中进行选项卡,直到我达到这个选择。如果我现在使用键盘向下键,则选择会跳转到选项“二”而不是“六”。

如何设置也适用于以后键盘使用的选定选项?

4

3 回答 3

5

尝试设置selectedIndex属性。见下文,

$('#myselect').val("5").prop('selectedIndex', 4);

演示:http: //jsfiddle.net/kLZ7z/

另一种更好的清洁方法是

var nValue = "5";
$('option', '#myselect').filter(function () {        
    return this.value == nValue;
}).prop('selected', true);

演示:http: //jsfiddle.net/kLZ7z/2/

于 2012-11-08T18:42:02.087 回答
1

这是一个 Firefox 错误。我发现的一种解决方案是.prop('selected', true)在选项上使用,而不是.val在选择上使用。

$('#myselect').children('option[value="five"]').prop('selected', true);

演示:http: //jsfiddle.net/JM2dZ/1/

注意:您不需要先取消设置selected其他选项,这样做实际上会导致问题继续发生。

于 2012-11-08T18:57:37.727 回答
0

猜测了一下,但试试这个:

$('#myselect option').each(function(){
    $(this).removeAttr('selected'));
});
$('#myselect option').eq(4).attr('selected', 'selected');

这是一些未经测试的伪代码,只是为了让您了解要尝试的内容。

于 2012-11-08T18:38:06.380 回答