我的网站上有一个密码更改功能,现在一切都已完成,但我想显示成功或失败消息。所以这是我的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脚本回显true
或false
所以当成功时我会收到一个读取成功的警告框。哪个好。但是字段集没有显示,<p>
内的文本也没有显示。它基本上只是跳过:
$('#response_field_pass').show();
$('#response_field_pass >p').text(data);
然后转到警报。任何想法为什么它不会取消隐藏该字段集?
答案 0 :(得分:1)
我怀疑它是否会跳过你提到的那些行。很可能fieldset中的段落没有任何内容可以显示,因为complete
处理程序的第一个参数是jqXHR
对象,而不是您从服务器接收的数据。为了解决这个问题,我建议你改用success
处理程序:
$.ajax({
type: "POST",
url: "script.php",
success: function(data) {
// ...
}
});
success
函数的第一个参数是data
,它是从服务器返回的。
要处理可能的请求错误,您可以使用error
处理程序。它接收三个参数:jqXHR
对象,描述发生的错误类型的字符串和可选的异常对象(如果发生)。