2012-02-24 31 views
0

私はユーザーが入力を押すことができ、モーダルでボタンをクリックする必要があるため(。このボタンはモーダルを閉じます)、.keypress()を使用しようとしています。私がコードするとき:jqueryで.keypress()を使用するには?

$(document).keypress(function() { console.log('keypress'); }); 

それは動作しますが、私は明らかにドキュメント上にそれを持っていないか、または入力を打つといつでも私のモーダルを閉じることができます。だから、私はこれを試しました(私のモーダルのIDを持っていました)。

$('#confirmModal').keypress(function() { console.log('keypress'); }); 

これはうまくいきません。

$('#AddLeadGeneral').on('keypress', '#confirmModal', function() { 
    console.log('.on keypress'); 
}); 

をしかし、これは動作しません:ユーザーがクリックので、私が試しキャンセルするまで、モーダルがページにまだ存在しないので、だから私はその多分うまく考えました。興味深いことに、私の.on()関数で 'keypress'を 'click'に置き換えれば十分です。私はちょうどそれを適切に使用するためのキー押下について十分に分かっていないと思う。基本的には、私のモーダルのために1つのヒットを入力すると、デフォルトのボタンは 'いいえ'でなければならないので、モーダルをクリックしたように閉じる必要があります。誰もこの仕事をする方法を知っていますか?

手順:ページの下部にある[キャンセル]をクリックしてから、[入力]をクリックするか、または[いいえ]をクリックして、効果の違いを確認します。

https://scrmqa.autobase.net/Opportunity/General?leadType=FloorUp&searchType=CustomerSearch&firstName=&lastName=x&phone=&address=&postalCode=&emailAddress=&

答えて

0

keypownはkeydownまたはkeyupと同じようにすべての文字に戻ってこないので、使用するのが最良ではありません。

$("yourSelector").keydown(function(e){ 
    if (e.keyCode == 13) { 
     //do something 
    } 
}); 
0

keypressのみ入力フォーカス(およびその親)を有する要素の発射。

ドキュメント全体でkeypressを処理する必要がありますが、ユーザーがモーダルを閉じて(後でハンドラを削除できる)ハンドラを追加する必要があります。

関連する問題