Jquery UI 选择菜单键码 115/116 阻止?

Jquery UI selectmenu keycodes 115/116 preventing?

https://jqueryui.com/selectmenu/ 对键码 115 (F4) 有非常不寻常的事件反应。当您展开列表并单击 F4 按钮时,选择了 somesome+1 选项改变。例如 link - firstsecond 选项,但在我的应用中 2021 列表节点 :O.

是bug吗?有可能防止这个吗?

在我的应用程序中,我在键码 116 (F5) 上发现了第二个奇怪的反应。当您展开列表并单击 F5 按钮时,在重新加载页面之前选择了一些选项。在我的应用程序中,它是 10。对我来说并不酷,因为我有一些项目要工作。该项目有发送 ajax 请求以在 session 更改所选选项时保存数据的事件,但在单击 F5 应用程序后发送 ajax 请求,然后重新加载更改 [=56] 中某些属性的页面=] 在 10 因为正如我所说,当您单击 F5 选择菜单更改 10.

上的选定节点时

示例: https://jqueryui.com/selectmenu/ 单击标题为 "Select a speed" 的选择菜单,然后单击 F4

是否有可能阻止此事件?

您可以像这样更改 selectmenu 原型(参见 运行 下面的代码片段):

$(function() {

  var ok = $.ui.selectmenu.prototype._buttonEvents.keydown;
  $.ui.selectmenu.prototype._buttonEvents.keydown = function(e) {
    if (e.keyCode == 115 || e.keyCode == 116) e.stopPropagation();
    ok.call(this, e);
  }

  var a = $("#speed").selectmenu();

});
label {
  display: block;
}

select {
  width: 200px;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.12.4.js"></script>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<label for="speed">Select a speed:</label>
<select name="speed" id="speed">
  <option value="Slower">Slower</option>
  <option value="Slow">Slow</option>
  <option value="Medium" selected>Medium</option>
  <option value="Fast">Fast</option>
  <option value="Faster">Faster</option>
</select>