2013-09-24 24 views
2

我有一个非常大的表单,可以由用户启用和禁用各个部分。在这些部分中,我具有用于验证的欧芹数据属性的字段。我希望在部分禁用时删除这些字段的验证属性,并在部分启用时将其添加回来。我试着用addConstraint和removeConstraint的JavaScript这样做,如下图所示:Parsleyjs删除约束和重新评估字段?

function ToggleVehicleInfo(toggleState) { 
     if (toggleState) { 
      $("#tbVehicleLicenseNumber").parsley('removeConstraint', 'required'); 
     } else { 
      $("#tbVehicleLicenseNumber").parsley('addConstraint', { required: true }); 
     } 
    } 

但这似乎只是去掉香菜错误类,但不是错误文本。有时它根本不会对现场产生任何影响。见下面 - 顶部是当现场已通过标签,底部后,我试图删除所需的约束:

enter image description here

所以我的问题是,我究竟做错了什么?另外,有没有更好的方式来处理这个问题?任何完成这个如何完成的例子?

回答

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跳过它。