文本框按回车键无法换行,因为防止表单提交的回车键被禁用。

4

我有一个表单,我使用了以下代码来防止在按下“Enter”键时提交表单。

<script>
$(document).ready(function() {
  $(window).keydown(function(event){
    if(event.keyCode == 13) {
      event.preventDefault();
      return false;
    }
  });
});

</script>

因此,在任何文本输入框中,“Enter”键都无法工作。由于body函数的原因,我无法输入新行。我该如何解决这个问题?

<textarea name='description' placeholder="Any other information (optional)"</textarea>

2
试一下这个:http://jsfiddle.net/scraaappy/bfwvc3ya/ - scraaappy
为什么要这样做?(捕获13键) - Maurice Perry
2个回答

9

我已经找到了解决方案。

您可以在所有表单元素上禁用回车键。只需对代码进行一些微调即可轻松完成。当光标位于文本区域时,请跳过禁止回车键的操作。请参阅以下代码:

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

它起作用了。tagName 调用什么? 为什么是大写的? - Harsh Gupta
TagName 返回触发 keydown 事件的元素名称,以大写字母形式呈现。 - Rav's Patel

1
为了防止表单提交,请尝试使用以下方法:
$("form").submit(function(e){
  e.preventDefault();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接