2013-10-07 166 views
1

如何将select元素的值设置为第一个启用的选项? 说我有HTML这样的:选择select元素中第一个启用的选项

<select name="myselect" id="myselect"> 
    <option value="val1" disabled>Value 1</option> 
    <option value="val2">Value 2</option> 
    <option value="val3" disabled>Value 3</option> 
    <option value="val4">Value 4</option> 
</select> 

我怎么会选择哪一个没有被禁用第一个选项(这将是VAL2)?

+0

是选择选项动态生成的? –

+0

大多数浏览器会自动执行此操作吗? (Chrome,FF和IE10)。 – nnnnnn

+0

@LloydBanks假设选择选项是在服务器端动态生成的。 – polandeer

回答

5

试试这个选择启用的第一个选项。

$('#myselect').children('option:enabled').eq(0).prop('selected',true); 

.children()寻找已启用选项列表中,选择.eq(0)名单上的第一个条目,并使用.prop()选择选项

+0

这是比我更好的答案。谢谢! – polandeer

+0

如果有不是直接子女的选项,比如optgroup中的选项,这项工作是否可行? –

+0

@ k-den否,在文档中表示“仅在DOM树下向下一级” –

1

这可以用jQuery来完成,但通过:enabled选择器过滤孩子。您可能还想使用:first,以便您只选择第一个项目。

$('#myselect').val($select.children(':enabled:first').val()); 

在纯javascript中它更复杂。

相关问题