是的,所以我没有发生什么事情。我一直在写一个AJAX评论脚本,我得到它的工作,除了它不再工作。我把它从备份中恢复,以防万一我乱,但没有运气。它转到了表单的“动作”而不是jQuery,即使我有return false;
这让我相信下面的一件事是错的:我没有正确地包含jQuery(我是)或我有语法错误。你看到了吗?
$(document).ready(function() {
$("#alert").hide();
$('form').submit(function() {
$("#alert").slideUp().delay(1000);
name = $('input[name=name]').val();
email = $('input[name=email]').val();
timestamp = $('input[name=timestamp]').val();
entry_title = $('input[name=entry_title]').val();
message = $('textarea[name=message]').val();
$.post("/scripts/ajax_comment.php", {comm_name:name, comm_email:email, comm_message:message, comm_timestamp:timestamp, comm_entry_title:entry_title}, function(data){
switch(data) {
case "invalid email" : $("#alert").val("").append("Invalid E-mail address.").slideDown();
break;
case "empty field" : $("#alert").val("").append("Make sure no fields are empty.").slideDown();
break;
case "error" : alert("error");
break;
default: $(data).appendTo("#messages").hide().slideDown().animate({ color: "#669900" }, 1000).animate({ color: "#000000" }, 1000);
}
});
return false;
});
});
解决:问题是延迟(1000);
答案 0 :(得分:5)
我不确定你在这做什么:
$("#alert").slideUp().delay(1000);
如果我没有弄错的话,jQuery 1.4的$.delay()
假设在一个动作之前。
您可能希望删除该行或完成该行 - 以适合您的项目为准。我认为没有任何其他问题可以阻止这种成功。
答案 1 :(得分:0)
您的浏览器是否启用了Javascript?您在控制台中看到任何错误消息吗?如果你在文件准备处理程序中发出警报,是否会触发?
答案 2 :(得分:0)
我现在不会导致错误,但不应该是用引号括起来的JSON字符串的键(我猜它们是字符串)?像:
{'comm_name':name,
'comm_email':email,
'comm_message':message,
'comm_timestamp':timestamp,
'comm_entry_title':entry_title}
如果你使用Firefox,请安装Firebug并检查控制台是否有错误消息...... Firebug在开发网站时有很多帮助。