如何在textarea上输入密钥时提交表单?

时间:2013-03-22 07:09:33

标签: javascript jquery html

我想通过点击地球上任何键盘上的Enter键,在textarea中提交内容,如下所示。当用户点击Shift+Enter键时,插入符号必须转到新行,并且在点击Enter时,提交的textarea内容应该在按下Shift+Enter时创建新行。 textarea的内容应该在class commentWrap的div之后插入,但最后提交的注释应该是最后一个和反之。

我希望此解决方案适用于所有浏览器。

<div class="commentWrap"></div>

<textarea id="test"></textarea>

<script type="text/javascript">
    $(document).ready(function() {
        $("#test").keypress(function(e) {
            var textVal = $(this).val();
            if(e.which == 13 && e.shiftKey) {
                //What should I really do here
            }
            else if (e.which == 13 && ! e.shiftKey) {
                e.preventDefault(); //Stops enter from creating a new line
                //this.form.submit(); //or ajax submit
                if (this.value ==="") {
                    alert("Hey punk! Put some text before you hit enter.");
                }else {
                    alert(textVal);
                    $("<div class='comment'>"+ textVal +"</div>").insertAfter('.commentWrap');
                }
            }
        });
    });
</script>

2 个答案:

答案 0 :(得分:1)

  

//我该怎么做呢

我认为,如果按下shift + enter,所有浏览器都会插入一个新行,这样你就可以返回true;

答案 1 :(得分:0)

如果您已经有一个用于提交表单的提交按钮,则只需触发点击处理程序。

    $("#submitButton").click();