jquery select下拉列表在's已打开
jquery select dropdown ignores keydown event when it's opened?
我正试图阻止每个浏览器中的退格按钮返回一页。现在我使用的是这个代码:
$(document).on("keydown", function (e) {
if (e.which === 8 && !$(e.target).is("input, textarea")) {
e.preventDefault();
}
});
它对所有事情都很好,除了当选择字段下拉列表打开时,此事件被忽略,退格会使我返回一页。我该如何解决这个问题?谢谢你的回答。
仅供参考,这是特定于Google Chrome的,因为您的代码在IE和FF.中运行良好
如果你真的需要这样做,你可以呈现一个假下拉列表,然后通过编程设置select。
您可以更改下拉列表的大小,使其显示为打开状态,如下所示:https://jsfiddle.net/yzr2cmqv/
<div clas="select-wrap">
<div class="fake-select"></div>
<select class="select">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
</div>
$(".fake-select").on("click", function () {
var numOfOpen = $("select.select option").size();
$(".select").attr("size", numOfOpen).css("overflow", "hidden");
$(this).hide();
});
$(".select").on("click", function () {
$(".select").attr("size", 1);
$(".fake-select").show();
});
除此之外,我不认为您可以做任何事情,因为当下拉菜单打开时,Chrome事件不会触发。
只需将select
标记添加到选择器:
$(document).on("keydown", function (e) {
if (e.which === 8 && !$(e.target).is("input, textarea, select")) {
e.preventDefault();
}
});
如果添加,您现在必须检查$(select)上的keydown事件
console.log(e.which)
console.log(e.target)
当选择下拉菜单处于活动状态时单击并按下键盘时,您会注意到您不会得到keydown事件。
这将用于您的
$(document).on("keydown", $('select'), function (e) {
if (e.which === 8) {
e.preventDefault();
}
});
相关文章:
- 如何在x-editable angularjs的select下拉列表中获得所选值
- 在JavaScript中捕获select(下拉列表)上的键输入
- select下拉列表和promise-短暂的空选择
- 如何获得Materialize select下拉列表以使用React
- 使用split()从select下拉列表中填充文本字段值
- AngularJS ui-select - 不选择下拉列表中的选项
- jQuery - select 下拉列表 - focusout 在 select 之前触发
- 使用 Javascript/jQuery 以编程方式关闭 SELECT 下拉列表
- 使用 Jquery 将 SelectListItems 的 JSON 列表映射到下拉列表 Select List 并指示
- 没有响应.chzn-select两个带有ajax和codeigniter的下拉列表
- 如何使用ajax在select下拉列表中填充json数据
- 使用Angular.js和PHP在select下拉列表中获取问题
- 要添加的搜索功能&从select下拉列表中删除选项
- 如何在javascript中只使用类名更改select下拉列表中的值
- 当选项包含空格时,在select下拉列表中动态追加值会在下拉列表中追加空字段
- 在html表的foreach绑定中,是否有可能将数据绑定到一个带有knockout的select下拉列表?
- JavaScript无法从select下拉列表中获取选项的值
- jquery select下拉列表在's已打开
- 使用javascript代码选择select下拉列表的值
- 动态& lt; select>下拉列表