【发布时间】:2015-06-29 09:32:27
【问题描述】:
我正在使用 JQuery 验证器插件。我有一个提交处理程序,如下所示:
submitHandler: function (form) {
$.ajax({
type: "POST",
url: "php/process.php",
data: {
'emailAddress': $("#emailAddress").val(),
},
dataType: "json"
}).done(function (response) {
if(response[1] == 'Rejected'){
$('#spanOne').addClass('red');
}
if(response[1] == 'Approved'){
$('#spanOne').addClass('green');
}
if(response[3] == 'Rejected'){
$('#spanTwo').addClass('red');
}
if(response[3] == 'Approved'){
$('#spanTwo').addClass('green');
}
if(response[0] == 'F'){
$('#spanOne').html('Your email has been ' + response[1]);
}
else{
$('#spanOne').html(response[0] + ' has been ' + response[1]);
}
if(response[2] == 'F'){
$('#spanTwo').html('Your mobile number has been ' + response[3]);
}
else{
$('#spanTwo').html(response[2] + ' has been ' + response[3]);
}
});
return false;
}
现在第一个问题是我的 done 函数对我来说似乎很乱。基本上,我没有发布所有代码,但我的回复是以下形式:
["F", "Rejected", "07364928374", "Approved", "ABC123"]
基本上,如果位置 1 被拒绝,我需要 spanOne 是红色的,否则它应该是绿色的。同样适用于位置 3。
我也有一个 invalidHandler,它做与上述类似的事情。有点用,如果我输入无效的电子邮件,它会显示为红色。但是,如果我随后提交了一封有效的电子邮件,虽然它显示已批准,但它仍保持红色。所以看起来 done 功能没有更新?从本质上讲,它似乎只在第一次提交时才真正起作用。
我怎样才能改进它以使其始终有效?
谢谢
【问题讨论】:
-
请同时显示您的 HTML!
标签: javascript jquery ajax validation