我有一个form带有两个文本框,一个 选择 下拉和一个 单选按钮 。当enter按键被按下时,我想调用我的 JavaScript 函数,但是当我按下它时,它form被提交了。
form
enter
按下键时如何防止form提交?**enter**
**enter**
if(characterCode == 13) { return false; // returning false will prevent the event from bubbling up. } else { return true; }
好的,假设您在表单中有以下文本框:
<input id="scriptBox" type="text" onkeypress="return runScript(event)" />
为了在按下回车键时从此文本框中运行一些“用户定义”脚本,而不是让它提交表单,这里有一些 示例 代码。请注意,此功能不会进行任何错误检查,并且很可能仅在 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也已被弃用。
keyCode
which
不幸的key是,现代浏览器广泛支持的受欢迎的标准在 IE 和 Edge 中有一些狡猾的行为。任何早于 IE11 的东西仍然需要polyfill。
key
keyCode此外,虽然已弃用的警告对and来说是相当不祥的which,但删除这些警告将代表对无数旧网站的巨大破坏性变化。出于这个原因, 他们不太可能很快就会去任何地方。