在Microsoft边缘浏览器

时间:2018-04-10 08:48:46

标签: javascript jquery microsoft-edge

我试图在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");

  });
});

演示

https://jsfiddle.net/c7jk6bpg/4/

1 个答案:

答案 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。使用鼠标导航的用户可能永远不会注意到。清除“全部”作为选择更好的选择集的键盘用户可能会重新获得关注。