我正在操纵一个选择,在我显示之前有一个选择的选项。在我的代码中只有一个保持选中状态,但由于我删除了之前选择的选项,因此选择显示默认值而不是下一个选择。
<body>
<select id="test">
<option value="1">1 month</option>
<option value="2" selected="selected">2 month</option>
<option value="3" selected="selected">3 month</option>
</select>
</body>
和javascript
$('#test option[value=3]').remove();
此处示例:example
这是预期的吗?在控制台中,示例中的选项2仍将具有所选属性。
答案 0 :(得分:0)
它似乎是默认行为。当您使用selected
标记多个时,它将使列表中的最后一个成为所选的一个。删除所选项目后,将始终选择第一个项目。无论其他任何项目是否具有selected
属性。
在chrome(38.0.2125.104 m),firefox 31和ie10中测试。到处都是相同的行为。
另请注意,select将使用包含任何内容的select属性拍摄最新选项。
如果你有:
<select id="test">
<option value="1">1 month</option>
<option value="2" selected="selected">2 month</option>
<option value="3" selected="false">3 month</option>
</select>
最后一个将被选中。对于0,空字符串或者放在那里的任何内容都是一样的。
答案 1 :(得分:0)
这里有一个小小的测试和解决方法:
http://jsfiddle.net/s8j7t2g5/9/
选项的attr仍处于选中状态,但是select的值是错误的。
$("#test option").each(function () {
if($(this).attr("selected") == "selected")
{
$('#test').val($(this).val());
}
});