Textarea Shift +输入下一行,输入以提交表单

时间:2013-12-23 11:16:29

标签: javascript jquery html css ajax

在textarea中,当用户按 Shift + Enter 时,它应该在下一个新行中继续,当他只需按 Enter 时,它应该提交表单而不使用提交按钮。

以下是 Fiddle!!

我浏览了很多,但没有帮助我,详细解释赞赏 请帮帮我!!

代码

$('commenttextarea').keyup(function (event) {
   if (  event.shiftKey && event.keyCode == 13) {
       var content = this.value;
       var caret = getCaret(this);
       this.value = content.substring(0,caret)+"\n"+content.substring(carent,content.length-1);
       event.stopPropagation();

  }else if(event.keyCode == 13)
  {
      $('commentform').submit();
  }});

2 个答案:

答案 0 :(得分:4)

首先,您错过了加载任何 jquery版本

第二,您在#textarea之前错过了form selectors

同样在行

中使用caret而不是carent
this.value = content.substring(0,caret)+"\n"+content.substring(caret,content.length-1);
                          // ----------------------------------^

完整代码

function getCaret(el) {
    if (el.selectionStart) {
        return el.selectionStart;
    } else if (document.selection) {
        el.focus();
        var r = document.selection.createRange();
        if (r == null) {
            return 0;
        }
        var re = el.createTextRange(),
            rc = re.duplicate();
        re.moveToBookmark(r.getBookmark());
        rc.setEndPoint('EndToStart', re);
        return rc.text.length;
    }
    return 0;
}
$('#commenttextarea').keyup(function (event) {
    if (event.shiftKey && event.keyCode == 13) {
        var content = this.value;
        var caret = getCaret(this);
        this.value = content.substring(0, caret) + "\n" + content.substring(caret, content.length - 1);
        event.stopPropagation();
    } else if (event.keyCode == 13) {
        $('#commentform').submit();
    }
});

请参阅this将起作用

答案 1 :(得分:0)

正如Rohan Kumar所说:你忘记了id Selectors

$('#commenttextarea').keyup(function (event) {
   if (  event.shiftKey && event.keyCode == 13) {
       var content = this.value;
       var caret = getCaret(this);
       this.value = content.substring(0,caret)+"\n"+content.substring(carent,content.length-1);
       event.stopPropagation();

  }else if(event.keyCode == 13)
  {
      $('#commentform').submit();
  }});