防止按Enter键提交表单

23 浏览
0 Comments

防止按Enter键提交表单

我有一个带有两个文本框、一个formEnterform

我如何防止按下Enter键时form被提交?

admin 更改状态以发布 2023年5月25日
0
0 Comments

同时使用 event.whichevent.keyCode

function (event) {
    if (event.which == 13 || event.keyCode == 13) {
        //code to execute here
        return false;
    }
    return true;
};

0
0 Comments

if(characterCode == 13) {
    // returning false will prevent the event from bubbling up.
    return false; 
} else{
    return true;
}

好的,假设你有一个表单中的以下文本框:


为了在按下回车键时运行一些“用户自定义”脚本而不提交表单,以下是一些示例代码。请注意,此函数不执行任何错误检查,很可能只能在IE中工作。要做得正确,您需要更强大的解决方案,但您将获得一般的思路。

function runScript(e) {
    //See notes about 'which' and 'key'
    if (e.keyCode == 13) {
        var tb = document.getElementById("scriptBox");
        eval(tb.value);
        return false;
    }
}

返回该函数的值将提示事件处理程序不要进一步冒泡该事件,并防止进一步处理按键事件。

注意:

已经指出 keyCode 已经 过时。下一个最好的替代方案 which 也已经 过时

不幸的是,受现代浏览器广泛支持的首选标准 key 在IE和Edge中存在一些 有问题的行为。任何早于IE11的内容仍需要一个 polyfill

此外,虽然已经对 keyCodewhich 发出了过时警告,但将其删除将对无数遗留网站造成巨大的破坏性变化。因此,它们不太可能很快就被取消。

0