textarea的不提交上输入(Textarea not submitting on enter)

2019-10-30 05:39发布

我知道,这个问题可能是多余的,但通过计算器上几乎每一个相关的问题已经看了之后,我还没有能够使我的问题“走开。” 问题是这样的:

上的“进入”,提交,而不是创建一个新的行textarea的内容按键。

这是我与合作:
jQuery的(从这里过类似的问题的答案):

  $('#message').keypress(function(e){
    var code = (e.keyCode ? e.keyCode : e.which);
    if (code == 13){
      $('#form').submit();
    }
  });

该HTML:

<div class="message">
<form name="form" class="form" id="form" action="chatsendmesg.php" method="POST">
<textarea rows="2" name="message" id="message" class="message" placeholder="RM911 Chat" cols="26"></textarea>
<input id="submit" class="submit" type="submit" value="Send" name="submit">
</form>

即使有这样的代码中,“进入”按键还是创建一个新的行,而不是提交。 地球上的什么我不理解这里? 它是一个缺少的preventDefault

在此先感谢,蒂姆

Answer 1:

该工程...

<html>
  <head>
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script>
        $(function(){
             $("#message").keypress(function(e){
                var code = (e.keyCode ? e.keyCode : e.which);
                if (code == 13){
                      $("#form1").submit();   
                }
              });
        });
    </script>
  </head>
  <body>
    <div id="message">
      <form name="form1" class="form1" id="form1" action="chatsendmesg.php" method="post">
          <textarea rows="2" name="message" id="message" class="message" placeholder="RM911 Chat" cols="26"></textarea> 
          <input id="submit1" class="submit1" type="submit" value="Send" name="submit1" />
      </form>
    </div>
  </body>
</html>


Answer 2:

preventDefault不会起作用,因为对于一个textarea,默认操作是把字符(由击键表示)在文本区域。 也就是说,没有你的击键将使其在文本区域。

为了防止只有新线被输入到文本区,你需要停止传播keypress事件,但只有当按下的键回车,这样的:

$("#void").keypress(function(e) {
    var code = (e.keyCode ? e.keyCode : e.which);
    if (code == 13){
      $('#form').submit();
      return false;  // stop propagation of the keypress
    }
   return true;
});


文章来源: Textarea not submitting on enter