防止“Enter”提交表单,但允许在文本域字段(jQuery)上使用

5 浏览
0 Comments

防止“Enter”提交表单,但允许在文本域字段(jQuery)上使用

这个问题已经有了答案:

防止用户按回车键提交表单

$(window).keydown(function(event){
    if(event.keyCode == 13) {
      event.preventDefault();
      return false;
    }
  });

上面这段代码可以有效地禁用\"enter\"键作为整个系统的表单提交者,这正是我想要的。但是,也会禁用textarea标签的回车键-用户应该可以按下回车键以便跳转到下一行。所以,是否有一种方式可以修改上面的代码以便检测是否来自textarea标签的回车键,并且不运行event.preventDefault();行?

整个网站中有很多表单 - 单独配置它们将是噩梦,而且可能没有意义 - 必须有一种通用的方法。上述代码在网站的每个页面上运行,以防止意外按\"enter\"键提交。

admin 更改状态以发布 2023年5月22日
0
0 Comments

我更倾向于使用 keyup 事件...使用 event.target 属性

$(window).keydown(function(event){
    if((event.which== 13) && ($(event.target)[0]!=$("textarea")[0])) {
      event.preventDefault();
      return false;
    }
  });

示例

0
0 Comments

你可以尝试这个

$(document).ready(function(){
    $(window).keydown(function(event){
        if(event.keyCode == 13 && event.target.nodeName!='TEXTAREA')
        {
          event.preventDefault();
          return false;
        }
    });
});

这里提供了一个fiddle

0