可能通过JavaScript仅从特定输入字段中防止Enter提交表单
可能通过JavaScript仅从特定输入字段中防止Enter提交表单
这个问题已经有答案了:
我有一个表单,当用户在某些字段中进行输入时,会通过onkeyup
触发创建建议框的动作。我能够捕获向上箭头、向下箭头和ESC键的按键事件,并按照需求在建议框中进行操作或关闭它。我想要使用回车键将他们的选择移动到触发建议的输入字段中。然而,我似乎无法捕获回车键的按键事件。
控制流从未进入我的JavaScript建议函数。而表单则会直接提交。我在这个有问题的输入元素上尝试了传递noEnter
函数到onkeypress
和onkeydown
內,以防止在按下回车键时发生,但结果不行。这个表单似乎掌控所有输入事件处理程序的控制权,并在它们做任何事情之前提交自己。
表单提交会覆盖字段中的所有其他事件处理程序吗?还是这里还有其他问题?如果是这样,是否有其他方法绕过这个问题?
这是有问题的输入元素(已省略一些值):
这是用来捕获它的javascript代码:
var evnt = (event ? event : window.event); var key = evnt.keyCode; if(key == 13) { // Handle Enter alert("ENTER PRESSED."); hideSuggestions(); return false; }
弹出警告从来没有触发过。将警告标记放在函数顶部也没有任何反应。但是对于ESC键,当我在一个检查key
参数是否为27的if
语句中放置完全相同的代码时,警告标记就会被触发。
还有其他几乎相同主题的问题,例如:防止用户通过回车键提交表单#2
然而,我不使用 jQuery ,而且我只想阻止此字段的回车键提交。但是,各种问题中提到的其他解决方案似乎都不起作用。
编辑:解释 key 是如何设置的。
admin 更改状态以发布 2023年5月22日