在textarea中按Enter键时如何提交表单

时间:2013-02-05 15:40:21

标签: javascript html

如何通过在<textarea>中按输入而不是按<input type="submit">按钮来提交表单?

<HTML>
    <BODY>
        <FORM ACTION="MyInserts.php"  METHOD="GET">
            firstname:  <TEXTAREA NAME="firstbox"></TEXTAREA><BR>
            <INPUT TYPE="submit" Value="send">
        </FORM>
</HTML>

2 个答案:

答案 0 :(得分:2)

如果您想在<form>上按 ENTER 时提交<textarea>,则应为其分配onKeyDown事件处理程序,并且当您检测到按下了 ENTER 时,使用javascript手动提交表单:

<html>
    <head>
        <script>
        function pressed(e) {
            // Has the enter key been pressed?
            if ( (window.event ? event.keyCode : e.which) == 13) { 
                // If it has been so, manually submit the <form>
                document.forms[0].submit();
            }
        }
        </script>
    </head>
    <body>
        <form action="MyInserts.php">
        <textarea onkeydown="pressed(event)"></textarea>
        </form>
    </body>
</html>

请参阅此JSFiddle

答案 1 :(得分:0)

如果您像我一样阅读2020年的问题并尝试将其与打字稿一起使用,您可能知道打字稿会告诉您e.keyCodee.which已被描述

因此,相反,您可以使用e.key,它会为您提供所按下键的确切字符串,就像它会给您Enter来按下Enter键,或者会给您{{1 }}按下btn控件,希望您能理解!

如果您还想编写一个函数将其转换为获取密钥代码的旧方法,则可以使用:

ctrl

还有许多其他可能的字符值here 但是,AFAIK没有针对它们的unicode代码点,例如:

switch (theChar) {
    case "Backspace":
      return 8;
    case "Tab":
      return 9;
    case "Enter":
      return 13;
    case "Alt":
      return 18;
    case "Escape":
      return 27;
    case "Delete":
      return 127;
    case "Minus":
      return 45;
    case "Plus":
      return 43;
    case "Equal":
      return 61;
    case "Delete":
      return 127;
    case "BracketRight":
      return 93;
    case "BracketLeft":
      return 91;
    case "Backslash":
      return 92;
    case "Slash":
      return 47;
    case "Semicolon":
      return 59;
    case "Colon":
      return 58;
    case "Comma":
      return 44;
    case "Period":
      return 46;
    case "Space":
      return 32;
    case "Quote":
      return 34;
    case "Backquote":
      return 39;

    //there are also "Numpad....." variants

    case "Unidentified":
      alert("handle the 'Unidentified' if you want to!");
  }


event。可能会为他们输出一些数字,但在整个过程中不一致 浏览器/机器,它们可能与其他代码点重叠。