阻止在 Enter 上提交,但允许在 TextArea 中输入换行符

Chi*_*inz 3 html javascript jquery jsf

是否可以阻止回车键提交表单,但允许回车键在输入中工作。(例如textArea换行符)?

到目前为止我尝试过:

  • e.preventDefault()
  • e.stopPropagation()

两者都在表单标签上onkeyup="if (e.keyCode == 13))"

这确实阻止了通过 Enter 键提交表单,但它也阻止了 Enter 键完全在表单字段内工作。我想要实现的是,当我在 TextArea 中按 Enter 键时,它会创建一个 newLine ,但是当我在 a 中按 Enter 键时input type="text",它不会提交表单。

使用 JSF 2.3

JQuery 解决方案也可以。

The*_*Raw 6

获取按键事件,然后检查specialClass是否不是:focus并检查按下的键(13 = Enter键)

$(document).keypress(function(e) {
  if(!$(".specialClass").is(":focus")){
    e.preventDefault();
    if(e.which == 13) {
        console.log('You pressed enter!');
    }
  }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="#" method="post">
  <textarea name="text" class="specialClass">Text</textarea><br>
  <input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)