2017-03-13 7 views
2

スペースバーキーで何かをトリガーしようとしますが、入力がフォーカスのときにスペースバーがトリガーしないようにする必要があります。入力フォーカス時にキーアップを防止する

私はこの方法で試していますが、うまく動作しません。 正しいことを行う方法はありますか。

$(document).ready(function(){ 
 
    $('input').on('blur', function(){ 
 
    $(document).on('keyup', function(e){ 
 
     if(e.keyCode == 32){ 
 
     alert("pressed!"); 
 
     } 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <label> Name</label> 
 
    <input type="text" /> 
 
    <br /> 
 
    <label>Pass</label> 
 
    <input type="text" /> 
 
</form>

+0

を質問を明確にする:あなたは「で何かをトリガを無効にしたいです入力がフォーカスされている間、および入力がフォーカスを失ったときに、 "トリガなんて"もう一度? – Sami

+0

私は、いつでも起動することができますが、入力のsetfocusトリガーが無効になっているとき – rnDesto

答えて

1

入力にフォーカスがあるときに.off()でハンドラを切り離し:

$(function(){ 
 
    $(document).on('keyup', function(e) { 
 
     if(e.keyCode == 32){ 
 
      alert("pressed!"); 
 
     } 
 
    }); 
 
    $('input').on('focus', function() { 
 
     $(document).off('keyup'); 
 
    }); 
 
    $('input').on('blur', function() { 
 
     $(document).on('keyup', function(e) { 
 
      if(e.keyCode == 32){ 
 
       alert("pressed!"); 
 
      } 
 
     }); 
 
    }); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <label> Name</label> 
 
    <input type="text" /> 
 
    <br /> 
 
    <label>Pass</label> 
 
    <input type="text" /> 
 
</form>

+0

私はイベントが.off()で停止できることを知らなかったことを知っています。 – rnDesto

関連する問題