0

私のページにはボタンとテキストボックスがあります。

もともと、ボタンをクリックして関数を呼び出していました。Enter今度は、キーを押すことでも実装したいと思います。しかし、それは機能していません。キーを押しEnterても myFunction に届きません。

<script type="text/javascript">
     $(document).ready(function () {
         $("#txt1").keyup(function (event) {
         if (event.keyCode == 13) {
             $("#btn1").click(myFunction);
         }
     });
         $('#btn1').click(myFunction);

     });
     function myFunction() {
         // do something, press enter key doesn't reach here.
         })
     }
  </script>
4

2 に答える 2

4

あなたはほぼ正しいです。.click() またはでハンドラーを呼び出すだけです.trigger('click')

 $(document).ready(function () {
    $("#txt1").keyup(function (event) {
    if (event.which== 13) {
        $("#btn1").click(); // Just do a click.
     }
   });

     $('#btn1').click(myFunction); //Your handler is already registered here.

});
function myFunction() {
         // do something, press enter key doesn't reach here.

}

また、jquery イベント ハンドラー内で正規化するため、 whenの代わりにevent.whichを使用します。event.keyCodeevent.keyCodeevent.charCode

于 2013-07-01T18:49:09.030 に答える
1

それ以外の

$("#btn1").click(myFunction);

使用することをお勧めします:

$("#btn1").on("click", function () {
   myFunction();
});

その後:

if (event.keyCode == 13) {
     $("#btn1").click(); //click the button
}

JSFIDDLE

于 2013-07-01T18:49:38.297 に答える