在jQuery中关注输入复选框时,如何禁用退格?

时间:2010-04-14 16:07:37

标签: jquery input checkbox backspace

如果在jQuery中关注输入checkboxes,如何禁用退格按钮?当checkboxes专注于我并按退格键(keycode = 8)时,浏览器认为我正在尝试返回页面并使用退格作为history.go(-1)命令。

$("div#types input").focus(function(){
  window.onkeydown = function(e){
    return !(e.keyCode == 8);
};

1 个答案:

答案 0 :(得分:4)

这样就可以随时停止退格按钮:

$(document).keydown(function(e) {
  if (e.keyCode === 8)
  {
     return false;
  }
});

现在要弄清楚只有当复选框被聚焦时如何运行...

编辑:

确定一个复选框是否具有焦点的问题在于,只有当它被选中或在代码中实际设置时才会获得焦点。如果单击它,则会检查它但实际上它没有聚焦(至少在chrome / safari中)。这一切都取决于你如何设置焦点。

编辑2:

要使复选框在单击时具有焦点,请添加以下内容:

$('input[type=checkbox]').click(function() {
   $(this).focus();
});

...所以把所有这些放在一起,这会使复选框专注于点击并在复选框具有焦点时停止退格按钮(当然所有内部都是$(document).ready函数):

$(document).keydown(function(e) {
    if (e.keyCode === 8 && $('input[type=checkbox]:focus').size() > 0)
    {
       return false;
    }
});

$('input[type=checkbox]').click(function() {
    $(this).focus();
});