3

私は次のコードを持っています。クリックして入力すると機能するように短くして、複製する必要がないようにするにはどうすればよいですか。

$(document).ready(function(){

    $(document).keypress(function(e) {
     if(e.which == 13) {
       $('form#myform').submit();
     }
   });

   $('#mybutton').click(function() {
     $('form#myform').submit();
   });  

});​
4

3 に答える 3

4

これは短いものになり、イベントのバブリングを利用します。

$(document).ready(function(){
   $(this).on('keypress click', function(e) {
       if(e.which == 13 || e.target.id==='mybutton')
           $('form#myform').submit();
   });  
});​

これがその仕組みです:http://jsfiddle.net/e6L3W/

于 2012-07-23T21:31:45.290 に答える
1

これを試して:

(ただし$(this)、ドキュメントの準備ができている場合の使用は明確ではないか、タイプミスである可能性があり、入力ボックスであると想定されています。)

これが原因に役立つことを願って、以下のリンクも読んでください::)

jQueryを使用して「Enter」でフォームを送信しますか?

コード

$(document).ready(function(){

   $('#search').keypress(function(event) { //<<== #search is input box id
     if ( event.which == 13 ) {
        $('#mybutton').trigger('click');
     }
   })

   $('#mybutton').click(function() {
     $('form#myform').submit();
   });  

});​

また

      var myFunction = function() {
        $('form#myform').submit();
      }

     $('#search').keypress(function(event) { //<<== #search is input box id
         if ( event.which == 13 ) {
            myFunction;
         }
       })

       $('#mybutton').click(myFunction);  

また

次のようにチェーンを試すことができます。

これは#elementイベントにバインドされますが、2つの別々の要素を2つの別々のイベントにバインドしようとしている可能性がありますが、結果は同じです。

$('#element').bind('keypress click', function(e) {
    ...
});
于 2012-07-23T21:07:30.693 に答える
1
$(document).ready(function(){
   $(this).bind('keypress click', function(e) {
       if(e.type == 'click') {
           if(e.target.id == 'mybutton') {
             $('form#myform').submit();
           }
       } else if(e.type == 'keypress') {
           if(e.which == 13) {
             $('form#myform').submit();
           }
       }
   });
});​
于 2012-07-23T21:38:16.423 に答える