防止按Enter键提交表单
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。
此外,虽然已经对 keyCode
和 which
发出了过时警告,但将其删除将对无数遗留网站造成巨大的破坏性变化。因此,它们不太可能很快就被取消。