如何通过在<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>
答案 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.keyCode
或e.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。可能会为他们输出一些数字,但在整个过程中不一致 浏览器/机器,它们可能与其他代码点重叠。