1

Enterキーが押されたときに送信するキープレスを実装しています。jqueryプラグインを作成しましたが、助けが必要です。

jQuery.fn.enterPress = function(obj, button) {          
            if (e.which == 13) {
                jQuery(button).click();

            }           
    };

この関数では、obj(html form)とbutton(クリックされます)を取得します。

よくわかりませんが、おそらくこの「obj」は必要ありません。私の問題は、この「e」がないことです。いろいろ試してみましたが、どうすれば検索できるのかわかりません。

私はこれを作りました:

jQuery('#' + obj.id).keypress(function(e) {}

しかし、関数は2回、場合によっては3回起動されました。

ありがとう

4

3 に答える 3

1

jQueryには、keypressと呼ばれるこのための組み込みメソッドがあります。

$("#target").keypress(function(event) {
  if ( event.which == 13 ) {
     event.preventDefault();
     // do stuff here 
  }
}

'enter'キープレスイベントをjQueryオブジェクトにバインドし、ボタンをクリックするためのより一般的なメソッドを追加する場合(質問とコメントで述べたように)、次のようにすることができます。

var $button = jQuery('#somebutton');

jQuery.fn.enterPress = function(callback) {
    jQuery(this).keypress(function(event) {
        if ( event.which == 13 ) {
            event.preventDefault();
            callback();
        }
    });
};

$button.click(function(){
    alert('button was clicked');
})

jQuery('#target').enterPress(function() {
    // what you want to happen after enter is pressed
    $button.click();
});

実例

于 2013-03-21T15:21:31.203 に答える
0

キーはすでにHTMLフォームを送信するようにバインドされていますが、returnとにかくさまざまなメソッドを使用してキープレスイベントをリッスンする方法は次のとおりです。

通常のJavaScript:

document.getElementById('yourFormId').addEventListener('keypress', function(e) {
    if(e.keyCode === 13)
        document.getElementById('yourButtonId').click();
}, false);

また、通常のJavaScript:

document.getElementById('yourFormId').onkeypress = function(event) {
    if(event.keyCode === 13)
        document.getElementById('yourButtonId').click();
};

またはjQuery:

$('yourFormId').keypress(function(event) {
    if(event.which === 13)
        $('yourButtonId').trigger('click');
});
于 2013-03-21T16:48:04.237 に答える
0

このコードは、「13keyCode」=="Enter"をクリックするとフォームを送信します

$(document).ready(function(e){
    $(document).keypress(function(e){
        if(e.keyCode == 13)
           $("#myFOrm").submit();
    });
});
于 2013-03-21T15:17:32.283 に答える