0

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

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

1 回答 1

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();
});
于 2010-04-14T16:28:55.097 回答