[英]How can I start a jquery function on clicking a button and on pressing enter
[英]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.