0

Enter我想通过按下地球上任何键盘上的键来提交文本区域中的内容,如下所示。当用户点击该Shift+Enter键时,插入符号必须转到一个新行,并且在点击Enter提交的 textarea 内容时应该在Shift+Enter按下时创建新行。textarea 的内容应该插入到具有类的 div 之后,commentWrap但最后提交的评论应该出现在最后,反之亦然。

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

<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>
4

2 回答 2

1

//我真的应该在这里做什么

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

于 2013-03-22T07:19:50.127 回答
0

如果您已经有一个用于提交表单的提交按钮,您可以简单地触发点击处理程序。

    $("#submitButton").click();
于 2013-03-22T07:28:36.377 回答