jQuery昨天工作。不再

时间:2010-01-22 00:56:36

标签: php jquery ajax debugging

是的,所以我没有发生什么事情。我一直在写一个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);

3 个答案:

答案 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在开发网站时有很多帮助。