【发布时间】:2020-10-30 17:00:38
【问题描述】:
我的表单上有一个不需要的复选框,我在我的规则中将其设置为必需的“false”,但它仍在验证并向父级添加一类“错误状态”。不确定是否有办法只对这个单一元素进行强制验证?
HTML:
<div class="form__input-row row--flex">
<div class="form-field row--flex">
<input id="copay-checkbox" type="checkbox" name="checkbox_eligible" class="form-input--checkbox">
<label class="form-label--opt-in row--flex align--flex-start">
<div class="opt-in__pseudo-input"></div>
<span class="form-label--opt-in__text">
I would like to receive a Card.
</span>
</label>
</div>
</div>
jQuery:
$("#cardForm").validate({
rules :{
checkbox_eligible: {
required: false,
},
},
errorPlacement: function (error, $element) {
var inputType = $element.attr('type'),
$parentField = $element.closest('.form-field');
if (inputType === 'checkbox') {
$parentField.addClass('error-state');
$parentField.append(error);
} else if (inputType === 'radio') {
error.insertAfter($parentField);
} else {
$parentField.append(error);
}
} else {
error.insertAfter($element);
}
},
【问题讨论】:
-
$parentField.addClass('error-state')- 请仔细查看this answer 上一个问题,我在几个月前指出了同样的错误。 -
换句话说,您的自定义
errorPlacement函数添加了一个不会自动删除的类。您已经有效地绕过了正常的验证流程。