我的网站上的帖子下面有评论框,我希望人们只需按回车键即可提交评论。评论也通过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上发生。
非常感谢任何帮助!
答案 0 :(得分:0)
而不是'keypress'使用以下内容。
$('textarea#scat').bind('**keydown**', function(e) {
if(e.keyCode==13){
答案 1 :(得分:0)
在按键http://api.jquery.com/keypress/上形成文档:
请注意,keydown和keyup提供了一个指示哪个键的代码 按下,而按键表示输入了哪个字符。对于 例如,keydown和keyup将小写的“a”报告为65, 但按键按97。所有人都报告大写“A”为65 事件。由于这种区别,在捕捉特殊击键时 例如箭头键,.keydown()或.keyup()是更好的选择。
所以你实际上想要在你的函数中使用keydown:http://api.jquery.com/keydown/
答案 2 :(得分:0)
可能与你的textarea的class属性有关。
PHP变量$ sid是一个数字吗?
如果是这样,请尝试添加非数字前缀,如
class='classname_<?php echo $sid; ?>'