我有一个非常大的表单,其中包含用户可以启用和禁用的各个部分。在这些部分中,我有带有欧芹数据属性的字段用于验证。我想在禁用该部分时删除这些字段的验证属性,并在启用该部分时将它们添加回来。我尝试使用 addConstraint 和 removeConstraint javascript 执行此操作,如下所示:
function ToggleVehicleInfo(toggleState) {
if (toggleState) {
$("#tbVehicleLicenseNumber").parsley('removeConstraint', 'required');
} else {
$("#tbVehicleLicenseNumber").parsley('addConstraint', { required: true });
}
}
但这似乎只是删除了欧芹错误类,但没有删除错误文本。有时它对场上根本没有任何影响。请参见下文 - 顶部是当字段被选项卡切换时,底部是在我尝试删除所需的约束之后:
所以我的问题是,我做错了什么?另外,有没有更好的方法来处理这个问题?有没有完整的例子来说明如何做到这一点?
最佳答案
您是否尝试过使用监听器来仅处理表单的相关部分,而不是添加和删除约束?
这是我在验证期间用来忽略隐藏字段的一个(使用 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 来跳过它。
关于jquery - Parsleyjs 消除约束并重新评估字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18991942/