2012-06-24 24 views
0

我在我的网站上的帖子下面有评论框,我希望人们能够通过简单地按下回车键提交评论。评论也通过ajax插入。JQuery提交textarea返回按键使用AJAX后

,因为它代表我的代码是:

对于AJAX后并捕获回车键:

$('textarea#scat').bind('keypress', function(e) { 
    if(e.keyCode==13){ 

     var myClass = $(this).attr("class"); 
     var comment = $("textarea." + myClass).val(); 
     if (comment == "") { 
     return false; 
     } 

     if (!$.trim($("textarea." + myClass).val())) { 
     return false; 
     } 

     var cid = $("input.c_" + myClass).val(); 
     var itemid = $("input.i_" + myClass).val(); 
     var type = $("input.t_" + myClass).val(); 
     var top = $("input.l_" + myClass).val(); 

     var dataString = 'comment='+ comment + '&cid=' + cid + '&itemid=' + itemid + '&type=' + type; 
     //alert (dataString);return false; 
     $.ajax({ 
      type: "POST", 
      url: "addcomment.php", 
      data: dataString, 
      success: function() { 
       $('#c').load('ajax/querylc.php?oid=' + myClass); 
       $("textarea." + myClass).val(''); 
      } 
     }); 
     return false; 
    }; 
}); 

我的评论框代码:

<div id='statuscomadd' class="<?php echo $sid; ?>" style='text-align:center; padding-top:2px; margin-left:12.5px; border-left:1px #a3a3a3 solid; border-right:1px #a3a3a3 solid; border-bottom:1px #a3a3a3 solid; height:40px; width:420px; vertical-align:middle;'> 
    <img id="scati<?php echo $sid; ?>" src='<?php if ($dp == null) { echo 'img/unknown_user.jpg'; } else { echo 'pf/' . $uid . '/' . $dp; } ?>' style='height:36.5px; margin-right:5px; margin-bottom:6px;'> 
    <form action='addcomment.php' method='post' id='ac' style='display:inline; border:0px; margin: 0 0 0 0; padding: 0 0 0 0;'> 
     <textarea id='scat' style='outline: none; height:30px; width:315px; font-family:Arial; border:0px; resize:none; margin-bottom:5px; border:1px solid #C9C9C9; display:inline;' name='comment' class='<?php echo $sid; ?>'></textarea> 
     <input type='hidden' class="t_<?php echo $sid; ?>" name='type' value='status' /> 
     <input type='hidden' class="i_<?php echo $sid; ?>" name='itemid' value='<?php echo $sid; ?>'/> 
     <input type='hidden' class="c_<?php echo $sid; ?>" name='cid' value='<?php echo $uid ?>' /> 

    </form> 
</div> 

的如果我使用表单提交按钮发布帖子,但如果我使用返回键,那么目前发生的所有情况都是这样它增加了一条新线,我只想在shift +输入时发生。

任何帮助将不胜感激!

+0

第一件事情是,在AJAX数据可以采取的对象了。我更喜欢使用它,因为它比自己想要形成字符串更好。它也回显$ sid?如果你拿出if语句返回false,会发生什么?它也取消了你已经注释掉的alert()吗?您的浏览器控制台是否会说出任何内容 – Sammaye

+0

如果我使用提交按钮,AJAX可以完美运行。只是它没有被按键触发... – AviateX14

+0

如果你直接访问哪个proerty,该怎么办:if(event.which == 13){' – Sammaye

回答

0

而不是'按键'使用以下内容。

$('textarea#scat').bind('**keydown**', function(e) { 

if(e.keyCode==13){ 
+0

没有区别... – AviateX14

0

窗体文档上按键http://api.jquery.com/keypress/

注意KeyDown和KEYUP提供指示被 哪个键按下一个代码,而按键指示被输入的字符。例如,对于 示例,小写的“a”将由keydown和keyup报告为65, 但按键值为97。大写“A”在所有 事件中报告为65。由于这种区别,当捕获诸如箭头键的特殊击键 时,.keydown()或.keyup()是更好的选择。

所以你真的想与你的函数,而不是使用的keydown:http://api.jquery.com/keydown/

0

可能与你的textarea的类属性做。

PHP变量$ sid是一个数字吗?

如果是这样,尝试添加一个非数字前缀像

class='classname_<?php echo $sid; ?>'