填写表单的textarea时,回车键被击中时的默认行为是移动到下一行。如何更改表单的行为,以便在用户点击输入时提交,即使用户在textarea中也是如此?如何在textarea关注时输入表单提交?
我用Firebug来结帐堆栈 溢出的评论textarea(它有这种行为),但看不到任何实现这种影响的JavaScript。有没有办法改变textarea的行为而不使用JavaScript?
填写表单的textarea时,回车键被击中时的默认行为是移动到下一行。如何更改表单的行为,以便在用户点击输入时提交,即使用户在textarea中也是如此?如何在textarea关注时输入表单提交?
我用Firebug来结帐堆栈 溢出的评论textarea(它有这种行为),但看不到任何实现这种影响的JavaScript。有没有办法改变textarea的行为而不使用JavaScript?
如果没有JavaScript,您无法做到这一点。 Stackoverflow使用jQuery JavaScript库,它在页面加载时将功能附加到HTML元素。
这里是你如何能有基本的JavaScript做到这一点:
<textarea onkeydown="if (event.keyCode == 13) { this.form.submit(); return false; }"></textarea>
键码13是回车键。
这里是你如何能与jQuery做这样的不#1:
<textarea class="commentarea"></textarea>
与
$(document).ready(function() {
$('.commentarea').keydown(function(event) {
if (event.keyCode == 13) {
this.form.submit();
return false;
}
});
});
<form id="myform">
<input type="textbox" id="field"/>
<input type="button" value="submit">
</form>
<script>
$(function() {
$("#field").keyup(function (event) {
if (event.which === 13) {
document.myform.submit();
}
}
});
</script>
注意HTML的相关部分是ID,我使用了一个文本框,但它可以是任何要附加行为的标签。同样为了便于阅读,我更喜欢通过它的ID来调用表单,如果在代码中有多个表单,这非常方便。 – 2010-12-12 16:11:31
不错,即时不在学习jquery上。我更喜欢自己编写函数,因为那时我有机会练习编写javascript – andrew 2010-12-12 16:49:11
为什么要在输入时提交textarea?
当您按Enter键时,默认会提交“文本”输入。这是一个单行输入。
<input type="text" value="...">
“textarea”不会,因为它受益于多线功能。在提交时输入会带走一些好处。
<textarea name="area"></textarea>
您可以添加JavaScript代码来检测输入按键和自动提交,但您最好使用文本输入。
因为我想要一个多行输入框,并且我希望用户能够通过按Enter键进行提交。我将完全消除提交按钮。我认为如果他们打算在按下回车键时允许评论被提交,那么SO应该摆脱它们的“添加注释”按钮 – andrew 2010-12-12 14:39:04
如果我们重命名这个问题“提交进入文本区域时表”? – 2016-07-05 02:56:21