簡體   English   中英

通過按Enter的jQuery函數

[英]jQuery function by pressing Enter

我正在努力進行這項工作,並了解如何通過在Javascript中按Enter來調用特定的按鈕。

作為例子,我有

 $(document).ready(function () { $('#myText').keyup(function () { alert(e.keyCode); }); $('#myButton').button().click(function () { alert('Button click 1!'); }); $('#myButton2').button().click(function () { alert('Button click 2!'); }); }); 
 <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <form action="#"> <button id="myButton">Button</button> <button id="myButton2">Button2</button> <input type="text" id="myText" /> </form> 

當我按下Mytext值時,如何使它進入單擊myButton2?

演示: http : //jsfiddle.net/WZ6TM/610/

更新:

以下答案無法正常工作,請查看我的代碼結構:

$(document).ready(function () {

    $('input#manualuser').keyup(function(e) {
        if (e.keyCode === 13) $('#search').click();
      });


    $('#search').click(function search() {
        if ($("input#manualuser").val() === '') {

            $('#infostatus').html("<label id='infostatus' class='info'>Please Enter Username</label>");

        }
        else {
            $.ajax({
                url: "https://" + $seldom + ":443/api/example/" + $("input#manualuser").val(),
                type: "GET",
                dataType: 'Jsonp',
                success: function (result) {....

問題是按Enter鍵(按下事件)的默認操作是“激活”焦點項目(實際上是button1)。 您需要防止默認設置。 然后如下自定義事件。

這是片段

http://jsfiddle.net/WZ6TM/637/

$(document).ready(function () { 

$('#myText').keydown (function(e) {
 if(e.which == 13) {  
e.preventDefault();
}
});

$('#myText').keyup(function (e) {
e.preventDefault();

  if(e.which == 13) {   
$("#myButton2").trigger('click');

}

});

$('#myButton').button().click(function () {
   alert('Button click 1!');
});

$('#myButton2').button().click(function () {
   alert('Button click 2!');
});
});

在示例中,如果您使用Enter關閉對話框,則事件將再次啟動,因此請當心,不要以為正在循環或執行其他操作。 它實際上正在運行,希望您了解正在發生的事情。

干杯

您需要趕上表格提交

$('form').submit(function(e){
  e.preventDefault();
  $('#mybutton2').click()
})

或者,您可以捕獲$('body')。keyup()並執行此操作。

我看到兩種可能性。 最簡單的方法是取消Submit事件:

$(document).ready(function () { 
  $('form').submit(function (e) {
   e.preventDefault();
   $('#myButton2').click();
  });

  $('#myButton').click(function () {
   alert('Button click 1!');
  });

  $('#myButton2').click(function () {
   alert('Button click 2!');
  });
});

並更改標記,以便默認情況下按鈕不會提交:

<form action="#">
<button type="button" id="myButton">Button</button>
<button type="button" id="myButton2">Button2</button>
<input type="text" id="myText" />
</form>

另一種方法是使用keydown並偵聽enter鍵。 不過,我不建議您使用這種方式,因為偵聽特定的鍵控代碼可能會使您的代碼難以推理。

http://jsfiddle.net/WZ6TM/644/編輯:提供了Fiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM