0

我的网站上有密码更改功能,现在一切都完成了,除了我想显示成功或失败消息。所以这是我的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);

并转到警报。任何想法为什么它没有取消隐藏字段集?

4

1 回答 1

1

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

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

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

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

于 2012-10-21T23:00:08.943 回答