我试图在Microsoft Edge浏览器上使用JQuery清除所有选定的选项。
除了Edge之外,它工作正常。
在边缘它正在工作,但Edge显示为已选中。
如果我在点击全部清除按钮后将鼠标悬停在选择框上,则取消选择所有选项
以下是我的代码。
HTML
<input type="button" id='clear' value="Clear All"/>
<select id="filter_value_1" style="width:200px;" multiple>
<option>A</option>
<option>B</option>
<option>C</option>
<option>D</option>
<option>E</option>
</select>
JS代码
$(document).ready(function(){
$("#clear").click(function(){
$("#filter_value_1 option:selected").removeAttr("selected");
});
});
演示
答案 0 :(得分:1)
jQuery focus()提供了解决此Edge错误的方法。
$(document).ready(function(){
$("#clear").click(function(){
$("#filter_value_1 option:selected").removeAttr("selected");
$("#filter_value_1").focus(); // Edge bug workaround
});
});
此方法的潜在缺点是键盘用户“集中精力”回到了选择列表中。通常,按下外部按钮会将焦点从选择列表中移开。通过这种解决方法,按“全部清除”按钮可以重新激活选择:随后按“ A”选择选项A。使用鼠标导航的用户可能永远不会注意到。清除“全部”作为选择更好的选择集的键盘用户可能会重新获得关注。