AJAX完全响应

时间:2012-10-21 22:55:35

标签: php jquery html ajax fieldset

我的网站上有一个密码更改功能,现在一切都已完成,但我想显示成功或失败消息。所以这是我的html:

<form id="change_Pass" action="" method="post">
    //stuff
</form>
<fieldset id="response_field_pass" style="display:none;"><p style="color:black;"></p></fieldset>

我的jquery:

$('#change_Pass').submit(function() {
    if(pass_val.form()) { 
        $.ajax({
            type: "POST",
            url: "script.php", 
            complete: function(data) {
                $('#response_field_pass').show();
                $('#response_field_pass >p').text(data);
                if(data) alert("success");
                else alert("fail");
            }
        });
    }
    return false;
});

php脚本回显truefalse所以当成功时我会收到一个读取成功的警告框。哪个好。但是字段集没有显示,<p>内的文本也没有显示。它基本上只是跳过:

$('#response_field_pass').show();
$('#response_field_pass >p').text(data);

然后转到警报。任何想法为什么它不会取消隐藏该字段集?

1 个答案:

答案 0 :(得分:1)

我怀疑它是否会跳过你提到的那些行。很可能fieldset中的段落没有任何内容可以显示,因为complete处理程序的第一个参数是jqXHR对象,而不是您从服务器接收的数据。为了解决这个问题,我建议你改用success处理程序:

$.ajax({
    type: "POST",
    url: "script.php",
    success: function(data) {
        // ...
    }
});

success函数的第一个参数是data,它是从服务器返回的。

要处理可能的请求错误,您可以使用error处理程序。它接收三个参数:jqXHR对象,描述发生的错误类型的字符串和可选的异常对象(如果发生)。