0

我在我的网站上的帖子下方有评论框,我希望人们能够通过简单地按返回键来提交评论。注释也是通过 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+enter 时发生。

任何帮助将非常感激!

4

3 回答 3

0

在按键http://api.jquery.com/keypress/上形成文档:

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

所以你实际上想在你的函数中使用 keydown:http: //api.jquery.com/keydown/

于 2012-06-24T21:42:44.950 回答
0

可能与您的 textarea 的类属性有关。

PHP 变量 $sid 是数字吗?

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

class='classname_<?php echo $sid; ?>'
于 2012-06-24T21:45:08.617 回答
0

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

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

if(e.keyCode==13){
于 2012-06-24T21:38:01.930 回答