0

checkboxesjQueryで入力がフォーカスされているときにバックスペースボタンを無効にするにはどうすればよいですか?に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 に答える