防止“Enter”提交表单,但允许在文本域字段(jQuery)上使用
防止“Enter”提交表单,但允许在文本域字段(jQuery)上使用
这个问题已经有了答案:
$(window).keydown(function(event){ if(event.keyCode == 13) { event.preventDefault(); return false; } });
上面这段代码可以有效地禁用\"enter\"键作为整个系统的表单提交者,这正是我想要的。但是,也会禁用textarea
标签的回车键-用户应该可以按下回车键以便跳转到下一行。所以,是否有一种方式可以修改上面的代码以便检测是否来自textarea
标签的回车键,并且不运行event.preventDefault();
行?
整个网站中有很多表单 - 单独配置它们将是噩梦,而且可能没有意义 - 必须有一种通用的方法。上述代码在网站的每个页面上运行,以防止意外按\"enter\"键提交。
admin 更改状态以发布 2023年5月22日
我更倾向于使用 keyup
事件...使用 event.target
属性
$(window).keydown(function(event){ if((event.which== 13) && ($(event.target)[0]!=$("textarea")[0])) { event.preventDefault(); return false; } });
示例
你可以尝试这个
$(document).ready(function(){ $(window).keydown(function(event){ if(event.keyCode == 13 && event.target.nodeName!='TEXTAREA') { event.preventDefault(); return false; } }); });
这里提供了一个fiddle。