Kích hoạt một nút bấm bằng JavaScript trên phím Enter trong hộp văn bản


1293

Tôi có một kiểu nhập văn bản và một nút bấm (xem bên dưới). Làm cách nào tôi có thể sử dụng JavaScript để kích hoạt sự kiện nhấp chuột của nút khi Enternhấn phím bên trong hộp văn bản?

Đã có một nút gửi khác trên trang hiện tại của tôi, vì vậy tôi không thể đơn giản biến nút này thành nút gửi. Và, tôi chỉ muốn Enterphím bấm vào nút cụ thể này nếu nó được nhấn từ trong một hộp văn bản này, không có gì khác.

<input type="text" id="txtSearch" />
<input type="button" id="btnSearch" value="Search" onclick="doSomething();" />

1
Lưu ý quan trọng đối với những tân binh như tôi: Phần quan trọng của câu hỏi này là nếu bạn đã có một biểu mẫu trên trang để đã có nút gửi. Câu trả lời của jQuery là tương thích trình duyệt chéo và là một giải pháp tốt.
Khiêu vũ Joshua

2
@JoshuaDance, đã có biểu mẫu / gửi không phải là vấn đề. Một trang có thể có nhiều hình thức (nhưng không được lồng nhau), mỗi hình thức có nội dung gửi riêng. Mỗi trường của mỗi biểu mẫu sẽ chỉ kích hoạt việc gửi biểu mẫu đó. Như đã nêu bởi câu trả lời này .
Frédéric

Câu trả lời:


1426

Trong jQuery, cách sau sẽ hoạt động:

$("#id_of_textbox").keyup(function(event) {
    if (event.keyCode === 13) {
        $("#id_of_button").click();
    }
});

$("#pw").keyup(function(event) {
    if (event.keyCode === 13) {
        $("#myButton").click();
    }
});

$("#myButton").click(function() {
  alert("Button code executed.");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Username:<input id="username" type="text"><br>
Password:&nbsp;<input id="pw" type="password"><br>
<button id="myButton">Submit</button>

Hoặc trong JavaScript đơn giản, những điều sau đây sẽ hoạt động:

document.getElementById("id_of_textbox")
    .addEventListener("keyup", function(event) {
    event.preventDefault();
    if (event.keyCode === 13) {
        document.getElementById("id_of_button").click();
    }
});

document.getElementById("pw")
    .addEventListener("keyup", function(event) {
    event.preventDefault();
    if (event.keyCode === 13) {
        document.getElementById("myButton").click();
    }
});

function buttonCode()
{
  alert("Button code executed.");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Username:<input id="username" type="text"><br>
Password:&nbsp;<input id="pw" type="password"><br>
<button id="myButton" onclick="buttonCode()">Submit</button>


12
Có lẽ cách tốt hơn để truy vấn event.which so với event.keyCode hoặc event.charCode, xem developer.mozilla.org/en/DOM/event.charCode#Notes
William Niu

25
keydownkhông phải keyuplà sự kiện tốt hơn để sử dụng. Ngoài ra, nếu bạn đang sử dụng asp.net, bạn sẽ phải return falsedừng asp.net để chặn sự kiện.
maxp

144
Vấn đề với việc sử dụng keydownlà giữ phím enter sẽ kích hoạt sự kiện lặp đi lặp lại. nếu bạn đính kèm vào keyupsự kiện, nó sẽ chỉ kích hoạt khi khóa được phát hành.
Steve Paulo

26
Tôi đã điều chỉnh mã của bạn thêm event.preventDefault();trước khi gọi click();chức năng trong khi trang web của tôi có một hình thức và tôi đã chuyển keyupvới keypressnhư nó đã được xử lý chỉ làm việc cho tôi, dù sao, cảm ơn vì mảnh gọn gàng của mã!
Adrian K.

7
Công bằng mà nói, jQuery khá đồng nghĩa với JS khi câu trả lời này được đăng. Nhưng bây giờ rất nhiều người trong chúng ta tránh jQuery hoàn toàn (vì nó chỉ lãng phí kb khi bạn đang sử dụng một cái gì đó như React) cảm thấy khó chịu khi chúng tôi tìm kiếm câu trả lời cho các câu hỏi về JS và thường thì điều đầu tiên xuất hiện là một thư viện chúng tôi không Tôi không muốn phụ thuộc vào.
Andy

402

Sau đó, chỉ cần mã nó vào!

<input type = "text"
       id = "txtSearch" 
       onkeydown = "if (event.keyCode == 13)
                        document.getElementById('btnSearch').click()"    
/>

<input type = "button"
       id = "btnSearch"
       value = "Search"
       onclick = "doSomething();"
/>

5
Vâng, tôi gần như đã làm điều đó. Tôi đoán đó chỉ là một sở thích cá nhân ... Tôi thích cách tiếp cận mang tính mô đun hơn. ;)
kdenney

9
nếu bạn cần dừng việc gửi biểu mẫu: onkeydown = "if (event.keyCode == 13) {document.getEuityById ('btnSubmit'). click (); event.returnValue = false; event.cattery = true;}"
Gabriel Chung

3
Điều này làm việc cho tôi do thực tế là phương thức nội tuyến, thay vì chức năng gọi với mã tương tự trong đó, cho phép bạn trả về false trong cuộc gọi và tránh gửi lại. Trong trường hợp của tôi, phương thức "nhấp chuột" gọi một cuộc gọi không đồng bộ __doPostback và không có "return false;" sẽ chỉ tải lại trang.
Dave

3
Tôi đồng ý với Sam, mã này với mã JS nội tuyến này xấu như địa ngục. Bạn phải luôn tách mã HTML và JavaScript.
Sk8erPeter

9
@Sam Không bao giờ có được sự khôn ngoan của bạn từ những con rối . Đau đớn dẫn đến sợ hãi , và sợ hãi là kẻ giết người tâm trí. Sợ hãi là cái chết nhỏ mang lại sự xóa sổ hoàn toàn. Tôi sẽ phải đối mặt với nỗi sợ hãi của tôi. Tôi sẽ cho phép nó vượt qua tôi và thông qua tôi. Và khi nó đã đi qua tôi sẽ hướng mắt vào trong để thấy con đường của nó. Trường hợp sự sợ hãi đã biến mất sẽ không có gì. Ngoại trừ có thể xử lý sự kiện nội tuyến. Vì vậy, vâng, vui lòng tách trình xử lý sự kiện của bạn khỏi chế độ xem / đánh dấu của bạn, như câu trả lời này . ; ^)
ruffin

179

Chỉ ra điều này:

<input type="text" id="txtSearch" onkeypress="return searchKeyPress(event);" />
<input type="button" id="btnSearch" Value="Search" onclick="doSomething();" />

<script>
function searchKeyPress(e)
{
    // look for window.event in case event isn't passed in
    e = e || window.event;
    if (e.keyCode == 13)
    {
        document.getElementById('btnSearch').click();
        return false;
    }
    return true;
}
</script>

22
e = e | | window.event; // cách ngắn nhất để có được sự kiện
Victor

2
Tùy chọn JavaScript đơn giản tốt nhất. JavaScript được thêm vào như một thuộc tính trong HTML tốn nhiều không gian và jQuery chỉ là jQuery (tính tương thích không được đảm bảo). Cảm ơn giải pháp!
boxspah 15/03/2015

và nếu bạn trả về false bên trong if, bạn có thể tránh khóa được xử lý thêm: <input type = "text" id = "txtSearch" onkeypress = "searchKeyPress (event);" /> <input type = "button" id = "btnSearch" Value = "Search" onclick = "doS Something ();" /> <script> chức năng searchKeyPress (e) {// tìm kiếm window.event trong trường hợp sự kiện không được thông qua trong e = e | | window.event; if (e.keyCode == 13) {document.getEuityById ('btnSearch'). click (); trả lại sai; } trả về đúng; } </ script>
Jose Gómez

83

Biến nút thành một phần tử gửi, vì vậy nó sẽ tự động.

<input type = "submit"
       id = "btnSearch"
       value = "Search"
       onclick = "return doSomething();"
/>

Lưu ý rằng bạn sẽ cần một <form>yếu tố có chứa các trường đầu vào để thực hiện công việc này (cảm ơn Serge Ilinsky).

Đó không phải là một cách thực hành tốt để xác định lại hành vi tiêu chuẩn, Enterkhóa phải luôn gọi nút gửi trên biểu mẫu.


30
Các bạn ạ! Đọc toàn bộ câu hỏi của anh ấy. Đã có một nút gửi khác trên trang, vì vậy điều này sẽ không hiệu quả với anh ta.
skybondsor

5
Thực tế thú vị, gần đây tôi đã cố gắng làm điều này trong SharePoint. Tuy nhiên, SharePoint đã có một biểu mẫu bao quanh tất cả nội dung của bạn và mọi <form>thẻ được loại bỏ bởi trình phân tích cú pháp HTML tự do. Vì vậy, tôi phải chiếm quyền điều khiển hoặc phá khóa. (BTW, nhấn Enter trong SharePoint sẽ khởi chạy chế độ Chỉnh sửa vì một số lý do. Tôi đoán ruy băng đang sử dụng cùng một hình thức.)

1
Một <button type="submit" onclick="return doSomething(this)">Value</button>công trình để. Manh mối nằm trong returntừ khóa
Gus

77

Vì chưa có ai sử dụng addEventListener, đây là phiên bản của tôi. Cho các yếu tố:

<input type = "text" id = "txt" />
<input type = "button" id = "go" />

Tôi sẽ sử dụng như sau:

var go = document.getElementById("go");
var txt = document.getElementById("txt");

txt.addEventListener("keypress", function(event) {
    event.preventDefault();
    if (event.keyCode == 13)
        go.click();
});

Điều này cho phép bạn thay đổi loại sự kiện và hành động riêng biệt trong khi giữ cho HTML sạch sẽ.

Lưu ý rằng có lẽ đáng để đảm bảo rằng điều này nằm ngoài một <form>vì khi tôi đính kèm các yếu tố này vào chúng, nhấn Enter đã gửi biểu mẫu và tải lại trang. Mất một vài cái chớp mắt để khám phá.

Phụ lục : Nhờ nhận xét của @ruffin, tôi đã thêm trình xử lý sự kiện bị thiếu và preventDefaultđể cho phép mã này (có lẽ) cũng hoạt động trong một biểu mẫu. (Tôi sẽ đi xung quanh để kiểm tra điều này, tại thời điểm đó tôi sẽ xóa nội dung được đặt trong ngoặc.)


14
Tôi thực sự không hiểu tại sao câu trả lời của JQeuery lại có nhiều sự ủng hộ hơn. Tôi khóc cho cộng đồng phát triển web.
David

1
Tất cả những gì bạn thực sự thiếu là một đối số trong trình xử lý nhấn phím của bạn và e.preventDefault()để làm cho nó hoạt động với các biểu mẫu. Xem câu trả lời (mới) của tôi .
ruffin

5
trừ khi bạn không có ý định người dùng của mình thực sự nhập bất kỳ dữ liệu nào, bạn thực sự nên làm một cái gì đó nhưif (event.keyCode == 13) { event.preventDefault(); go.click();}
không đồng bộ hóa vào

1
Sử dụng jQuery chỉ cho điều nhỏ bé này là chắc chắn vô dụng. Nó cũng hoạt động dễ dàng với CSP và mất ít thời gian hơn để tải. Nếu bạn có thể, sử dụng này.
Avamander

59

Trong JavaScript đơn giản

if (document.layers) {
  document.captureEvents(Event.KEYDOWN);
}

document.onkeydown = function (evt) {
  var keyCode = evt ? (evt.which ? evt.which : evt.keyCode) : event.keyCode;
  if (keyCode == 13) {
    // For Enter.
    // Your function here.
  }
  if (keyCode == 27) {
    // For Escape.
    // Your function here.
  } else {
    return true;
  }
};

Tôi nhận thấy rằng câu trả lời chỉ được đưa ra trong jQuery, vì vậy tôi cũng nghĩ sẽ đưa ra một cái gì đó bằng JavaScript đơn giản.


20
tài liệu.layers? Bạn vẫn đang hỗ trợ Netscape chứ? !!
Victor

6
Không, bạn không cần phải hỗ trợ Netscape. blog.netscape.com 2007/12/28 / Từ
kingdango

7
Netscape.com thậm chí không còn tồn tại nữa (nó chuyển hướng đến aol.com) và vẫn có những người hỗ trợ nescape, thật tuyệt vời.
LeartS

6
evt.which ? evt.which : evt.keyCodebằng vớievt.which || evt.keyCode
người dùng

3
@LeartS Tôi cá là vì vẫn còn người sử dụng Netscape.
SantiBailors

23

Một mẹo cơ bản bạn có thể sử dụng cho việc này mà tôi chưa thấy đề cập đầy đủ. Nếu bạn muốn thực hiện một hành động ajax hoặc một số công việc khác trên Enter nhưng không thực sự muốn gửi một biểu mẫu bạn có thể làm điều này:

<form onsubmit="Search();" action="javascript:void(0);">
    <input type="text" id="searchCriteria" placeholder="Search Criteria"/>
    <input type="button" onclick="Search();" value="Search" id="searchBtn"/>
</form>

Đặt hành động = "javascript: void (0);" như thế này là một phím tắt để ngăn chặn hành vi mặc định về cơ bản. Trong trường hợp này, một phương thức được gọi cho dù bạn nhấn enter hay nhấp vào nút và một cuộc gọi ajax được thực hiện để tải một số dữ liệu.


Đây là một giải pháp tốt hơn để hỗ trợ thiết bị di động. Nó tự động ẩn bàn phím trên thiết bị Android và cả iOS nếu bạn thêm searchCriteria.blur();vào onsubmit.
Aaron Gillion

Điều này sẽ không hoạt động, vì đã có một nút gửi trong trang.
Jose Gómez

@ JoseGómez, một trang có thể có nhiều nút gửi như mong muốn của nhà phát triển, chỉ được kích hoạt bởi các trường tương ứng của họ. Chỉ cần có các hình thức riêng biệt cho từng nhóm trường / gửi. Một trang không giới hạn ở một hình thức.
Frédéric

@Frederic: từ câu hỏi tôi (mis?) Hiểu rằng nút gửi khác có cùng dạng: "Đã có một nút gửi khác trên trang hiện tại của tôi, vì vậy tôi không thể đơn giản biến nút này thành nút gửi."
Jose Gómez

1
Đây là một câu trả lời tuyệt vời vì nó cho phép các hành động tùy chỉnh nhưng vẫn tránh được sự cần thiết của một loạt mã ghi đè ưa thích.
Beejor

16

Thử nó:

<input type="text" id="txtSearch"/>
<input type="button" id="btnSearch" Value="Search"/>

<script>             
   window.onload = function() {
     document.getElementById('txtSearch').onkeypress = function searchKeyPress(event) {
        if (event.keyCode == 13) {
            document.getElementById('btnSearch').click();
        }
    };

    document.getElementById('btnSearch').onclick =doSomething;
}
</script>

15

Để kích hoạt tìm kiếm mỗi lần nhấn phím enter, hãy sử dụng:

$(document).keypress(function(event) {
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if (keycode == '13') {
        $('#btnSearch').click();
    }
}

14
onkeydown="javascript:if (event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById('btnSearch').click();}};"

Đây chỉ là thứ tôi có từ một dự án gần đây ... Tôi đã tìm thấy nó trên mạng và tôi không biết liệu có cách nào tốt hơn hay không bằng JavaScript cũ.


14

Sử dụng keypressevent.key === "Enter"với JS hiện đại!

const textbox = document.getElementById("txtSearch");
textbox.addEventListener("keypress", function onEvent(event) {
    if (event.key === "Enter") {
        document.getElementById("btnSearch").click();
    }
});

Tài liệu Mozilla

Trình duyệt được hỗ trợ


13

Mặc dù, tôi khá chắc chắn rằng miễn là chỉ có một trường trong biểu mẫu và một nút gửi, nhấn enter sẽ gửi biểu mẫu, ngay cả khi có một biểu mẫu khác trên trang.

Sau đó, bạn có thể chụp biểu mẫu onsubmit với js và thực hiện bất kỳ xác nhận hoặc gọi lại nào bạn muốn.


13

Không ai nhận thấy "accesskey" html có sẵn trong một thời gian.

Đây là một cách không có javascript để các công cụ phím tắt.

accesskey_browsers

Các phím tắt thuộc tính accesskey trên MDN

Có ý định được sử dụng như thế này. Bản thân thuộc tính html là đủ, chúng ta có thể thay đổi trình giữ chỗ hoặc chỉ báo khác tùy thuộc vào trình duyệt và os. Kịch bản là một cách tiếp cận đầu chưa được kiểm tra để đưa ra một ý tưởng. Bạn có thể muốn sử dụng trình phát hiện thư viện trình duyệt như bowser nhỏ

let client = navigator.userAgent.toLowerCase(),
    isLinux = client.indexOf("linux") > -1,
    isWin = client.indexOf("windows") > -1,
    isMac = client.indexOf("apple") > -1,
    isFirefox = client.indexOf("firefox") > -1,
    isWebkit = client.indexOf("webkit") > -1,
    isOpera = client.indexOf("opera") > -1,
    input = document.getElementById('guestInput');

if(isFirefox) {
   input.setAttribute("placeholder", "ALT+SHIFT+Z");
} else if (isWin) {
   input.setAttribute("placeholder", "ALT+Z");
} else if (isMac) {
  input.setAttribute("placeholder", "CTRL+ALT+Z");
} else if (isOpera) {
  input.setAttribute("placeholder", "SHIFT+ESCAPE->Z");
} else {'Point me to operate...'}
<input type="text" id="guestInput" accesskey="z" placeholder="Acces shortcut:"></input>


1
Truy cập có hai s.
kaiser

3
Dường như không trả lời câu hỏi của OP xung quanh trường hợp đặc biệt của key = ENTER
Ozan Bellik

12

Đây là một giải pháp cho tất cả những người yêu thích YUI ngoài kia:

Y.on('keydown', function() {
  if(event.keyCode == 13){
    Y.one("#id_of_button").simulate("click");
  }
}, '#id_of_textbox');

Trong trường hợp đặc biệt này, tôi đã có kết quả tốt hơn khi sử dụng YUI để kích hoạt các đối tượng DOM đã được thêm chức năng nút - nhưng đây là một câu chuyện khác ...


12

Trong Angular2 :

(keyup.enter)="doSomething()"

Nếu bạn không muốn có một số phản hồi trực quan trong nút, thì đó là một thiết kế tốt để không tham chiếu nút mà chỉ cần gọi trực tiếp bộ điều khiển.

Ngoài ra, id không cần thiết - một cách phân tách NG2 khác giữa chế độ xem và mô hình.


1
Dưới đây là câu hỏi về thông tin thêm về các tùy chọn keyup: stackoverflow.com/q/32155887/435605
AlikElzin-kilaka

10

Điều này trong trường hợp bạn muốn cũng có thể nhập nút enter từ Đăng lên máy chủ và thực thi tập lệnh Js.

<input type="text" id="txtSearch" onkeydown="if (event.keyCode == 13)
 {document.getElementById('btnSearch').click(); return false;}"/>
<input type="button" id="btnSearch" value="Search" onclick="doSomething();" />

9

Đây onchange nỗ lực gần, nhưng misbehaves đối với trình duyệt trở lại sau đó chuyển tiếp (trên Safari 4.0.5 và Firefox 3.6.3), vì vậy cuối cùng với, tôi sẽ không khuyên bạn nên nó.

<input type="text" id="txtSearch" onchange="doSomething();" />
<input type="button" id="btnSearch" value="Search" onclick="doSomething();" />

Cũng nên đề cập rằng nó kích hoạt sự không tập trung.
Huỳnh quangGreen5

8
event.returnValue = false

Sử dụng nó khi xử lý sự kiện hoặc trong chức năng mà trình xử lý sự kiện của bạn gọi.

Nó hoạt động trong Internet Explorer và Opera ít nhất.


8

Đối với di động jquery tôi phải làm

$('#id_of_textbox').live("keyup", function(event) {
    if(event.keyCode == '13'){
    $('#id_of_button').click();
    }
});

2
.livekhông được dùng trong jQuery 1.7. Nó vẫn được coi là OK trong jQuery Mobile?
Barmar

8

Để thêm một giải pháp JavaScript hoàn toàn đơn giản giải quyết vấn đề của @ icedwater với việc gửi biểu mẫu , đây là một giải pháp hoàn chỉnh vớiform .

LƯU Ý: Đây là dành cho "trình duyệt hiện đại", bao gồm IE9 +. Phiên bản IE8 không phức tạp hơn nhiều và có thể tìm hiểu ở đây .


Vĩ cầm: https://jsfiddle.net/rufwork/gm6h25th/1/

HTML

<body>
    <form>
        <input type="text" id="txt" />
        <input type="button" id="go" value="Click Me!" />
        <div id="outige"></div>
    </form>
</body>

JavaScript

// The document.addEventListener replicates $(document).ready() for
// modern browsers (including IE9+), and is slightly more robust than `onload`.
// More here: https://stackoverflow.com/a/21814964/1028230
document.addEventListener("DOMContentLoaded", function() {
    var go = document.getElementById("go"),
        txt = document.getElementById("txt"),
        outige = document.getElementById("outige");

    // Note that jQuery handles "empty" selections "for free".
    // Since we're plain JavaScripting it, we need to make sure this DOM exists first.
    if (txt && go)    {
        txt.addEventListener("keypress", function (e) {
            if (event.keyCode === 13)   {
                go.click();
                e.preventDefault(); // <<< Most important missing piece from icedwater
            }
        });

        go.addEventListener("click", function () {
            if (outige) {
                outige.innerHTML += "Clicked!<br />";
            }
        });
    }
});

1
Downvote mà không giải thích làm cho khó khăn để giải quyết mối quan tâm của bạn. Hãy cho tôi biết những gì có vẻ không đúng và tôi rất vui khi được theo dõi.
ruffin

7

Trong Javascript hiện đại, không được đánh giá cao (không có keyCodehoặc onkeydown):

<input onkeypress="if(event.key == 'Enter') {console.log('Test')}">

Đây là ý kiến ​​của tôi, câu trả lời đơn giản nhất thực hiện công việc. Trong trường hợp sử dụng của mình, tôi đã nâng cấp nó thành onkeypress = "inputKeyPression (event)" và sau đó xử lý tham số event.which trong chính hàm đó. Nhập khóa chẳng hạn trả về sự kiện. Trong đó là 13.
ak93

5
document.onkeypress = function (e) {
 e = e || window.event;
 var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
 if (charCode == 13) {

        // Do something here
        printResult();
    }
};

Đây là hai xu của tôi. Tôi đang làm việc trên một ứng dụng cho Windows 8 và muốn nút này đăng ký một sự kiện nhấp khi tôi nhấn nút Enter. Tôi đang làm điều này trong JS. Tôi đã thử một vài gợi ý, nhưng có vấn đề. Điều này chỉ hoạt động tốt.


Sắp xếp quá mức cần thiết để đặt trình xử lý sự kiện trên tài liệu. Nếu bạn có một charCodetrong số 13 bất cứ nơi nào khác, bạn sẽ bắn ra printResult().
ruffin

5

Để làm điều đó với jQuery:

$("#txtSearch").on("keyup", function (event) {
    if (event.keyCode==13) {
        $("#btnSearch").get(0).click();
    }
});

Để làm điều đó với JavaScript bình thường:

document.getElementById("txtSearch").addEventListener("keyup", function (event) {
    if (event.keyCode==13) { 
        document.getElementById("#btnSearch").click();
    }
});

5

Đối với những người có thể thích cách tiếp cận js ngắn gọn và hiện đại.

input.addEventListener('keydown', (e) => {if (e.keyCode == 13) doSomething()});

trong đó đầu vào là một biến chứa thành phần đầu vào của bạn.


1

Đối với JS hiện đại keyCodekhông được dùng nữa, keythay vào đó hãy sử dụng

searchInput.onkeyup = function (e) {
    if (e.key === 'Enter') {
        searchBtn.click();
    }
}

0

Trong jQuery, bạn có thể sử dụng event.which==13. Nếu bạn có một form, bạn có thể sử dụng $('#formid').submit()(với các trình lắng nghe sự kiện chính xác được thêm vào việc gửi biểu mẫu đã nói).

$('#textfield').keyup(function(event){
   if(event.which==13){
       $('#submit').click();
   }
});
$('#submit').click(function(e){
   if($('#textfield').val().trim().length){
      alert("Submitted!");
   } else {
    alert("Field can not be empty!");
   }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label for="textfield">
Enter Text:</label>
<input id="textfield" type="text">
<button id="submit">
Submit
</button>


0

Tôi đã phát triển javascript tùy chỉnh để đạt được tính năng này bằng cách thêm lớp

Thí dụ: <button type="button" class="ctrl-p">Custom Print</button>

Tại đây Hãy xem Fiddle
- hoặc -
xem ví dụ đang chạy https://stackoverflow.com/a/58010042/6631280

Lưu ý: trên logic hiện tại, bạn cần nhấn Ctrl+ Enter


-4

Điều này cũng có thể giúp, một hàm JavaScript nhỏ, hoạt động tốt:

<script type="text/javascript">
function blank(a) { if(a.value == a.defaultValue) a.value = ""; }

function unblank(a) { if(a.value == "") a.value = a.defaultValue; }
</script> 
<input type="text" value="email goes here" onfocus="blank(this)" onblur="unblank(this)" />

Tôi biết câu hỏi này đã được giải quyết, nhưng tôi chỉ tìm thấy một cái gì đó, có thể hữu ích cho những người khác.


5
Câu hỏi là để kích hoạt một nút bấm bằng phím enter trong hộp văn bản. Giải pháp của bạn dành cho loại chức năng "watermark".
kdenney
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.