javascript - Jquery UI selectmenu 键码 115/116 防止?

标签 javascript jquery-ui jquery-ui-selectmenu

https://jqueryui.com/selectmenu/对键码 115 (F4) 有非常不寻常的事件 react 。当您展开列表并单击 F4 按钮时,选择了 somesome+1 选项进行更改。在来自链接的示例中 - firstsecond 选项,但在我的应用程序 2021 列表节点中:O .

是bug吗?有可能防止这种情况吗?

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

例子: https://jqueryui.com/selectmenu/单击标题为“选择速度”的选择菜单,然后单击 F4

有可能避免这种情况吗?

最佳答案

您可以像这样更改 selectmenu 原型(prototype)(查看并运行下面的代码片段):

$(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>

关于javascript - Jquery UI selectmenu 键码 115/116 防止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48896634/

相关文章:

与谷歌侧边栏一起使用时的 jquery ui Accordion 标题高度问题

JQuery UI 自动完成实现不起作用

javascript - 使 jQuery UI Selectmenu "Not change"成为 'change' 事件的值

javascript - 为什么在定义带引号或不带引号的 JavaScript 对象文字时会有所不同?

javascript - AWS.HttpClient handleRequest 在 AWS lambda 中不起作用

javascript - React - react.render() 上未处理的错误事件

javascript - 将日期转换为 Word 格式

jquery - 将数据属性从选项标签传输到 UI 选择菜单项

javascript - JQueryUI selectmenu - 如何添加更多选项

javascript - 带上传功能的 AJAX 进度条