2013-03-22 85 views
0

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

我希望此解决方案可以在所有浏览器中工作。

<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> 
+0

那么是什么问题?我在那里没有看到问题。 – BeardFist 2013-03-22 07:13:10

+0

由于您没有表单,您是否计划使用ajax提交textareas值? – adeneo 2013-03-22 07:14:50

+0

问题是,当我按下'Shift + Enter'时,在提交时不能识别换行符 – 2013-03-22 07:31:08

回答

1

//我应该怎么真正做到这里

没什么,我认为,所有的浏览器会插入新行,如果Shift + Enter被按下,所以你可以只返回true;

0

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

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