仅在选中单选按钮时验证字段集(条件验证)

Lau*_*dev 4 parsley.js

我有一个包含两组字段的表单:

  • "联系信息"(17个字段)
  • "公司信息"(5个领域)

收音机上有一个问题"你有公司吗?" 这与公司信息有关.如果收音机为"是",则必须填写并验证公司字段.如果收音机为"否",则应忽略公司字段.

我不确定管理这个问题的最佳方法.

  1. 通过根据单选按钮的状态切换公司字段的禁用属性,并排除欧芹选项中的所有禁用字段

    $('#adminForm').parsley({excluded: '[disabled]'});
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用两个data-parsley-group并根据单选按钮的状态验证一个或两个块

我试图用jsfiddle上的一个例子(但没有成功).

Luí*_*ruz 8

欧芹文档陈述了以下内容data-parsley-group

将组分配给字段以进行特定组验证.例如:data-parsley-group ="signup".这样,您只能验证表单的一部分而不是所有字段.可以是多个.例如:data-parsley-group ='["foo","bar"]'

可以认为您可以使用data-parsley-group仅验证表单的一部分,并在验证后提交表单.这是不正确的.

data-parsley-group旨在用于多步骤表单,其中必须验证整个表单,并且验证一次应用于一个或几个组.一旦验证了所有组,就会提交表单.

你需要的是:

  1. 如果选中公司:仅验证第一个字段并忽略公司字段.
  2. 如果公司选中:验证所有的表单字段.

因此,表单是相同的,但有时表单有更多的字段.我建议你使用disabled来解决这个问题.选中公司时,显示字段,否则隐藏字段并禁用它们.

将parsley绑定到表单时,:disabled将该excluded选项添加到该选项,以便Parsley可以忽略此字段.

我已经更新了JSFiddle以满足您的需求.