最近更新到jQuery v1.12并发现它将<select>
个元素设置为一个不存在的选项(如果一个不存在),而不是优雅地回退到取消之前的值。
以下是我以前的行为(v1.10之前):
$("button").click(function() {
$("select").val('');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select>
<option value="1">something 1</option>
<option value="2" selected="selected">something 2</option>
</select>
<button>reset</button>
&#13;
以下是v1.10 +的表现方式:
$("button").click(function() {
$("select").val('');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<select>
<option value="1">something 1</option>
<option value="2" selected="selected">something 2</option>
</select>
<button>reset</button>
&#13;
这是一个错误还是预期的行为?
我通读了changelog并且没有看到任何具体提及这一变化但发现它具有破坏性。
(请注意:我不正在寻找解决方法,正如评论中所述,我已经更改了我的应用以使用$('select').prop("selectedIndex", 0).change();
)
答案 0 :(得分:9)
jQuery自动将其设置为第一个或默认选项是jQuery 1.10 +
后修复的错误