繁体   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