Javascript jquerykeydown没有';我没有遗漏什么

Javascript jquerykeydown没有';我没有遗漏什么,javascript,jquery,ajax,Javascript,Jquery,Ajax,大家好,我正在尝试使用jquerykeydown函数和以下代码创建一个pres-enter来发送评论。但我每次都会收到“请写下你的评论”的错误。在这方面,有人能帮我吗 $('.sendcomment').bind('keydown', function(e) { if(e.keyCode==13) { var ID = $(this).attr("id"); var OID = $(this).attr("rel"); var URL = $.base_

大家好,我正在尝试使用jquerykeydown函数和以下代码创建一个pres-enter来发送评论。但我每次都会收到“请写下你的评论”的错误。在这方面,有人能帮我吗

$('.sendcomment').bind('keydown', function(e) {
   if(e.keyCode==13) {
      var ID = $(this).attr("id");
      var OID = $(this).attr("rel");
      var URL = $.base_url + 'sendcomment_ajax.php';
      var comment = $(this).parents('.user-post').find("#commentid" + ID).val();

      var dataString = 'comment=' + comment + '&msg_id=' + OID;

      if ($.trim(comment).length == 0) {
        swal({
          title: "Plese write your comment!",
          text: "",
          timer: 5000
        });
       } else {
          $.ajax({
          type: "POST",
          url: URL,
          data: dataString,
          cache: false,
          success: function(html) {
            $("#commentload" + ID).append(html);
            $("#commentid" + ID).val('').css("height", "35px").focus();
          }
        });
       }
    return false;
        }
  });
HTML文本区

<div class="comments-area" id="commentload<?php echo $msgid;?>">

comments will be come here

</div>
    <div class="user-post" id="postbody<?php echo $msgid;?>">
        <textarea class="sendcomment" name="comment" id="commentid<?php echo $msgid;?>"></textarea>

        <input type="submit" class="send-comment comment_button commentopen" id="<?php echo $msgid;?>" rel="<?php echo $msgid;?>" value="SEND" />
    </div>

根据您的信息,我认为您的
注释
变量选择器有问题,因为您的测试总是告诉您注释值的长度为0

另外,既然您似乎有注释ID,为什么不使用这个更简单的选择器:
$(“#commentid'+ID)

假设$msgid=47

当您执行
varid=$(this.attr(“ID”)
要获取文本区域的id,它将返回“commentid47”,因此当您想要使用
获取注释时,查找(“#commentid”+id)
您正在查找id“commentid47”

因此,您可以使用
.find(“#”+ID)
或更好的解决方案,只需使用
$(this).val()
即可获得注释:

var comment = $(this).val();
但如果您只需要获取msgid,就可以在ajax调用中使用它,我建议将其保存在属性中:

<textarea class="sendcomment" name="comment" id="commentid<?php echo $msgid;?>"  data-msgid="<?php echo $msgid;?>"></textarea>

看看这个(简化的)JSFiddle:

@finrod好的,现在另一个问题来了。当我按enter键时,注释将不会显示在
id=“commentload”
@fidrod中,因此当我刷新页面时,我会看到我当时的注释。@创新您可以将msgid保存在DOM中:
@Finrod它正在发布消息和msgid,但只是成功:函数(html){…}无法工作。请向$.ajax添加错误回调以查看问题所在:
error:function(e){console.log(e);}
var ID = $(this).attr('data-msgid');