填写表单的textarea时,按下回车键时的默认行为是移动到下一行。我如何更改表单的行为,以便即使用户在textarea中,它也会在用户点击输入时提交?
我使用Firebug来检查Stack Overflow的评论textarea(有这种行为),但是看不到任何能够实现这种效果的JavaScript。有没有办法在不使用JavaScript的情况下改变textarea的行为?
答案 0 :(得分:101)
没有JavaScript,你不能这样做。 Stackoverflow使用jQuery JavaScript库,它在页面加载时将函数附加到HTML元素。
以下是使用vanilla JavaScript的方法:
<textarea onkeydown="if (event.keyCode == 13) { this.form.submit(); return false; }"></textarea>
Keycode 13是回车键。
以下是使用jQuery的方法,就像Stackoverflow一样:
<textarea class="commentarea"></textarea>
与
$(document).ready(function() {
$('.commentarea').keydown(function(event) {
if (event.which == 13) {
this.form.submit();
event.preventDefault();
}
});
});
答案 1 :(得分:6)
<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>
答案 2 :(得分:6)
为什么要在输入时提交textarea?
按Enter键时,默认情况下会提交“文本”输入。这是一个单行输入。
<input type="text" value="...">
“textarea”不会,因为它受益于多线功能。在输入时提交会带走一些好处。
<textarea name="area"></textarea>
您可以添加JavaScript代码来检测输入按键并自动提交,但最好还是使用文本输入。