从下拉列表中删除所选选项会选择未选择的默认选项

时间:2014-10-22 15:12:09

标签: javascript jquery html

我正在操纵一个选择,在我显示之前有一个选择的选项。在我的代码中只有一个保持选中状态,但由于我删除了之前选择的选项,因此选择显示默认值而不是下一个选择。

<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仍将具有所选属性。

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());
    }
});