-1

如何通过按而不是按按钮来获取提交enter<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>
4

2 回答 2

3

如果您想<form>在用户按下 a 时提交ENTERa <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中工作。

于 2013-02-05T16:14:08.810 回答
1

如果您像我一样在 2020 年阅读此问题并尝试将其与 typescript 一起使用,您可能知道 typescript 会告诉您这一点e.keyCode或被贬低e.which

因此,您可以使用e.key它来为您提供正在按下的键的确切字符串,就像它会为您Enter提供按下回车按钮或它会为您ctrl提供按下控制 btn 一样,所以希望您明白这一点!

此外,如果您想编写一个函数将其转换为获取关键代码的旧方法,您可以使用以下内容:

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!");
  }


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

switch (theKey) {
    case "AltLeft":
    case "CapsLock":
    case "ControlRight":
    case "Fn":
    case "NumpadDecimal":
    ...

event.which 可能会为它们输出一些数字,但在浏览器/机器之间并不一致,它们可能与其他代码点重叠。

于 2020-11-10T00:21:38.247 回答