2009-11-14 27 views
5

特定のキーが押されたときにイベントを発生させようとしています。入力またはテキストエリアの入力時にjquery keypressを無効にする

しかし、ユーザーがフォームフィールドにある場合は、この動作を無効にしたいと思います。これを行うには、ユーザーがフォームフィールドに入力しているかどうかをテストするにはどうすればよいですか?ありがとう。

答えて

1

たぶん、あなたは、あなただけのスイッチの前に$(文書).keypressイベントにdisable_keyeventsの値をチェックするグローバルVAR

var disable_keyevents = false; 
$('textarea,input') 
    .focus(function() { disable_keyevents = true }) 
    .blur(function() { disable_keyevents = true; }); 

を設定することができます。

16
$(document).keypress(function(e) { 
    if ($(e.target).is('input, textarea')) { 
     // event invoked from input or textarea 
    } 
    ...   
}); 
+0

これは素晴らしい動作です、ありがとうございます! – Bill

0

このコードは、ユーザーがフォーム内でASCII文字#96を押すとトリガーされます。このキーを押すと、このキー入力の「デフォルトコード」を無効/変更できます。

$('#my_form_field').live('keypress', function(e) { 
    if (e.keyCode == 96) { 
     e.preventDefault(); 
     // Do stuff. 
    } 
}); 
関連する問題