我有一个form带有两个文本框,一个 选择 下拉菜单和一个 单选按钮 。当enter按下该键时,我想调用一个Javascript函数(用户定义),但是当我按下它时,将提交表单。
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)" />
为了在按下Enter键时从此文本框中运行某些“用户定义”脚本,而不让其提交表单,下面是一些 示例 代码。请注意,此功能不执行任何错误检查,很可能仅在IE中有效。为此,您需要一个更强大的解决方案,但您将获得一般的想法。
function runScript(e) { //See notes about 'which' and 'key' if (e.keyCode == 13) { var tb = document.getElementById("scriptBox"); eval(tb.value); return false; } }
返回该函数的值将警告事件处理程序不要再使事件冒泡,并且将防止进一步处理keypress事件。
它已经指出,keyCode在现在已经过时。下一个最好的替代which已经也被弃用。
keyCode
which
不幸的key是,受现代浏览器广泛支持的受人欢迎的标准在IE和Edge中具有某些[躲避行为。IE11之前的任何版本都仍需要polyfill。
key
此外,尽管过时的警告对于keyCode和都是不祥的警告which,但删除这些警告将意味着对不计其数的旧版网站的巨大突破。因此,他们不太可能很快就去任何地方。