有没有人有任何想法为什么removeClass不适合我?反应中的removeClass和.required都不适用于任何实例。
JSFiddle:http://jsfiddle.net/6y4wdf7g/10/
if ($(".required").val() === '') {
$(".required").parent().addClass("has-error");
$("#response").removeClass("alert-success");
$("#response").addClass("alert-warning");
$("#response .message").html("<strong>Error</strong>: It appear's you have forgotten to complete something!");
$("#response").fadeIn();
} else {
$(".required").parent().removeClass("has-error");
// .....
}
答案 0 :(得分:1)
首先,在查看您在JSFiddle上发布的HTML时,我注意到您使用id="response"
有两个元素。那会引起问题。 ID应该是唯一的,因此只有一个元素应具有相同的ID。
从技术上讲,removeClass可以正常工作。问题是你的逻辑。您正在使用$(".required").val() === ''
检查所有字段,这些字段无法正常工作。如果第一个.required
表单字段中存在值而不是.required
的任何其余部分中的值,则逻辑将自动触发您的else子句(因为技术上.required
的第一次迭代有价值)。如果第一个.required
表单字段中没有值,则表示所有表单字段都为空,因此删除类将不起作用。
如果我理解正确的话,你会想要做更多这样的事情:
var errorCounter = 0;
$(".required").each(function(i, obj) {
if($(this).val() === ''){
$(this).parent().addClass("has-error");
errorCounter++;
} else {
$(this).parent().removeClass("has-error");
}
});
if (errorCounter > 0) {
$("#response").removeClass("alert-success").addClass("alert-warning").fadeIn();
$("#response .message").html("<strong>Error</strong>: It appear's you have forgotten to complete something!");
}
希望这会有所帮助。如果您有任何问题,请告诉我。
答案 1 :(得分:0)
根据您提供的信息,我不得不猜测您的查询无效或者代码与html之间的类名不一致。