我正在尝试将我的评论区域发布而不使用以下代码刷新页面,但它仍然只是刷新。我试过把返回假;到处都没有。我看不出有明显的问题吗?
$('#commentForm').keydown(function(e) {
if (e.keyCode == 13) {
var songComment = $("#songComment").val();
var username = $("#username").val();
var comid = $("#comid").val();
var dataString = 'songComment=' + songComment + '&username=' + username + '&comid=' + comid;
if(dataString=='' || songComment=='' || username=='' || comid=='')
{
$('.success').fadeOut(200).hide();
$('.error').fadeOut(200).show();
}
else
{
$.ajax
({
type: "POST",
url: "comment.php",
data: dataString,
success: function(){
$('.success').fadeIn(200).show();
$('.error').fadeOut(200).hide();
}
});
}
return false;
};
});
答案 0 :(得分:2)
那里没有什么会导致页面刷新。您只是提交一个AJAX请求,而您根本没有改变窗口位置,也没有告诉它刷新。
您的评论表单中是否有提交按钮?如果是这样,当用户按下回车键时可能会激活它。您需要调用e.preventDefault()
以防止传递给处理函数的事件采取正常的操作。具体来说,您需要在 中处理 输入密钥,即:
$('#commentForm').keydown(function(e) {
if (e.keyCode == 13) {
e.preventDefault();
// do stuff in response to enter key being pressed
}
}
否则,您将停止所有键击任何内容!
当然,如果提交按钮被之前激活到您的事件处理程序,这可能对您没有帮助。考虑使用不是提交按钮的常规按钮:使用按钮类型的button或input元素。