设置选择值对键盘使用没有影响

时间:2012-11-08 18:32:39

标签: jquery

我有一个选择f.e. 10个选项('one','two','three',......)。加载页面时,第一个选项“一”被选中。

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

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

实际上现在五分之一选项显示在选择中,值也设置正确。

但现在我在我的表单中选中,直到我达到此选择。如果我现在使用键盘向下键,则选择跳转到选项'two'而不是'six'。

如何设置一个适合以后键盘使用的选定选项?

3 个答案:

答案 0 :(得分:5)

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

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

DEMO: http://jsfiddle.net/kLZ7z/

另一种更清洁的方法是

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

DEMO: http://jsfiddle.net/kLZ7z/2/

答案 1 :(得分:1)

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

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

DEMO:http://jsfiddle.net/JM2dZ/1/

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

答案 2 :(得分:0)

猜一点,但试试这个:

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

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