簡體   English   中英

按下Enter鍵時如何停止觸發按鈕

[英]how to stop a button from being fired when press enter

我正在使用此函數來處理輸入點擊搜索文本框,但它會觸發頁面中的另一個按鈕,如何阻止該按鈕被觸發並調用我的search()函數。

InputKeyPress(e) {
    if (window.event) {
        if (event.keyCode == 13) {
            search();
        }
    } else {
        if (e) {
           if (e.which == 13) {
               search();
           }
        }
    }
 }

keyCode == 13情況下,您需要防止keypress事件的默認操作。 執行此操作的標准方法是在事件對象上調用preventDefault函數(如果它有一個;它不在早期版本的IE上)。 較舊的方法是從事件處理程序函數返回false 這兩種方法的“腰帶和括號”方法都沒有真正的危害。 :-)

你也可以稍微縮短你的功能:

function InputKeyPress(e) {
    var keyCode;

    e = e || window.event;
    keyCode = e.keyCode || e.which;
    if (keyCode == 13) {
        search();
        if (e.preventDefault) {
            e.preventDefault();
        }
        return false;
    }
}

你需要像這樣添加“return false”:

function InputKeyPress(e) {
    if (!e)
        e = window.event;
    var keyCode = e.keyCode || e.which;
    if (keyCode == 13) {
        search();
        return false;
    }

    return true;
}

並將呼叫從文本框更改為:

<input .... onkeypress="return InputKeyPress(event);" ...>

這意味着不僅要調用該函數,還要“返回”它。

暫無
暫無

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

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