我有一个非常大的表单,其中包含可由用户启用和禁用的各个部分。在这些部分中,我有一些带有欧芹数据属性的字段用于验证。我想在禁用该部分时删除这些字段的验证属性,并在启用该部分时将其添加回来。我已尝试使用addConstraint和removeConstraint javascript执行此操作,如下所示:
function ToggleVehicleInfo(toggleState) {
if (toggleState) {
$("#tbVehicleLicenseNumber").parsley('removeConstraint', 'required');
} else {
$("#tbVehicleLicenseNumber").parsley('addConstraint', { required: true });
}
}
但这似乎只是删除了parsley-error类,而不是错误文本。有时根本不会对场地产生任何影响。请参阅下文 - 顶部是字段已经标记的情况,底部是在我尝试删除所需的约束之后:
所以我的问题是,我做错了什么?另外,有更好的方法来处理这个问题吗?有关如何完成此操作的完整示例?
答案 0 :(得分:0)
您是否尝试使用侦听器仅处理表单的相关部分,而不是添加和删除约束?
以下是我在验证过程中忽略隐藏字段的一种方法(使用jquery):
listeners: {
onFieldValidate: function ( elem, ParsleyField ) {
// if field is not visible, do not apply Parsley validation!
if ( !$( elem ).is( ':visible' ) ) {
return true;
}
return false;
}
}
您可以设置一些指标来确定您要验证的表单的哪个部分,如果当前字段不在该部分中,则通过返回false跳过它。