我正在尝试使用类' .required&#39使用each()。
问题是,它不断突破循环并始终跳转到“返回true”;'即使所有字段都是空的。
这是html:
<input type="text" id="personal-name" name="personal-name" class="required-field" placeholder="First Name">
这是jQuery代码:
function validForm() {
var privacyApprove = $('#privacy-approved');
var errorWindow = $('.errors');
// Fade out the error after 3 seconds
var errorFadeOut = setInterval(function () {
errorWindow.fadeOut();
clearInterval(errorFadeOut);
}, 3000);
if (!privacyApprove.is(':checked')) {
errorWindow.fadeIn().text("יש להסכים לתנאי התקנון");
return false;
}
$('input.required-field, textarea.required-field').each(function() {
if ($(this).val() == 0) {
errorWindow.fadeIn().text("אנא השלם את כל הפרטים הנדרשים המודגשים באדום");
$(this).addClass('input-error');
} else {
$(this).removeClass('input-error');
}
});
return true;
}
我做错了什么?
谢谢! :)
答案 0 :(得分:0)
好像你想做
if ($(this).val() == '')
而不是
if ($(this).val() == 0)
有效的替代方案是
if ($(this).val().length == 0)
此外,您应该始终避免返回true
。将您的返回值更改为此
return $('.input-error').length == 0
答案 1 :(得分:0)
如果代码获得每个块,它将始终返回true。您没有任何返回false的逻辑。
可能在每个
之后添加类似的东西if ($('input-error'))
return false
else
return true