当textarea有焦点时,如何在输入时提交表单?

时间:2010-12-11 20:35:18

标签: html forms

填写表单的textarea时,按下回车键时的默认行为是移动到下一行。我如何更改表单的行为,以便即使用户在textarea中,它也会在用户点击输入时提交?

我使用Firebug来检查Stack Overflow的评论textarea(有这种行为),但是看不到任何能够实现这种效果的JavaScript。有没有办法在不使用JavaScript的情况下改变textarea的行为?

3 个答案:

答案 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代码来检测输入按键并自动提交,但最好还是使用文本输入。