1

私の目標:

同じボタンを押すことにつながる複数のキーダウン機能を1つの機能にすることでクリーンアップします。

私の問題:

私はこのような多くの機能を作りました:

$("#username").keydown(function(event){
    if(event.keyCode == 13) {
        $('#loginbtn').click();
    };
});
$("#password").keydown(function(event){
    if(event.keyCode == 13) {
        $('#loginbtn').click();
    };
});

そのトリガーボタンはボタンをクリックします。それはあまりにも厄介で、多くの行を使用します。行を1つの関数に結合したいと思います。登録フォーム用のボックスもたくさんあります。

私は何を試しましたか?

1. 次のコードと機能しない他の複製を試しました。

$("#username","#password").keydown(function(event){
    if(event.keyCode == 13) {
        $('#loginbtn').click();
    };
});

2. 私が持っていたもう1つのアイデアは、クラスを使用することでした。これが「適切な」方法と見なされるかどうかわからないため、意見が必要です。

$(".logintextbox").keydown(function(event){
    if(event.keyCode == 13) {
        $('#loginbtn').click();
    };
});

次に、そのクラスをHTMLに追加して、すべてのログインテキストボックスとすべての登録テキストボックスに、それらを「グループ化」する一意のクラスを設定します。

私の質問/tl;dr:

複数のIDまたは1つのクラスを使用して、2つ以上のjqueryキーダウン関数を1つの関数に組み合わせるにはどうすればよいですか?

4

2 に答える 2

3

複数の要素を選択します。$('#username, #password')。の2番目の引数$はコンテキストです。

于 2013-03-03T22:39:49.947 に答える
3

個々の要素ではなく、フォームから委任することをお勧めします。

$("#your_form_id").on('keydown', 'input', function(event){
    if(event.keyCode == 13) {
        $('#loginbtn').click();
    };
});

これにより、フォーム内のすべての入力で押されているキーがキャプチャされます。

于 2013-03-03T22:43:44.023 に答える