我正在使用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;
}
现在第一个问题是我的功能对我来说似乎很麻烦。基本上,我发布了所有代码,但我的回答是以下形式:
["F", "Rejected", "07364928374", "Approved", "ABC123"]
基本上,如果位置1被拒绝,我需要spanOne为红色,否则它应该是绿色。同样适用于第3位。
我还有一个invalidHandler,它与上面的内容类似。它有点工作,如果我输入无效的电子邮件,它显示为红色。但是,如果我然后提交有效的电子邮件,虽然它显示为“已批准”,但它仍保持红色。所以似乎完成功能没有更新?实质上,它似乎只在第一次提交时起作用。
如何改善这一点以使其始终有效?
由于
答案 0 :(得分:0)
根据您的说明,我猜您在提交无效数据时会添加red
课程,但在您再次提交时却不会将其删除。因此,即使添加了green
类,red
类仍然存在并且可以覆盖它。
提交时第二次检查您的电子邮件字段。它是否同时包含red
和green
类?如果是这样,请在done
回调的最顶部添加以下内容:
$('#spanOne, #spanTwo').removeClass('red green')