ParlseyJS - 删除禁用域验证(ParlseyJS - remove validation

2019-10-21 03:20发布

刚开始使用ParlseyJS因为我们正在做一些新的工作。

我有一个问题,即我隐藏和禁用基于一个下拉值一堆下拉列表(以一种形式)。 当我提交此表,这些领域继续得到验证。 这些字段被通过jQuery停用例如:

minage.removeAttr('data-parsley-minagecheck').attr('data-parsley-excluded', '').attr('disabled', 'disabled');
maxage.removeAttr('data-parsley-maxagecheck').attr('data-parsley-excluded', '').attr('disabled', 'disabled');
xxx.removeAttr('data-parsley-xxxcheck').attr('data-parsley-excluded', '').attr('disabled', 'disabled');
yyy.removeAttr('data-parsley-yyycheck').attr('data-parsley-excluded', '').attr('disabled', 'disabled');

你会发现,我也删除自定义的验证检查和我加入排除领域的下拉列表的属性。

如何从正在验证阻止他们?

我更新了我的Parsley.js文件设置ParsleyDefaults这样:

excluded: 'input[type=button], input[type=submit], input[type=reset], input[type=hidden], [disabled]',

Answer 1:

绑定到你的表单香菜后,这是不够的删除属性。 这是因为香菜将创建一个ParsleyForm与该形式的约束对象。

此外, excluded选项将在那里欧芹绑定到表单的那一刻被考虑在内。 在你的情况下,该领域尚未禁用,所以他们会考虑到为了进行验证。

你需要的是毁灭,你已删除的属性后应用香菜,以免ParsleyForm不containt这些领域。 如果使用的是香菜V2,你应该添加属性的删除或插入后的代码:

$("#myForm").parsley().destroy();
$("#myForm").parsley();

同时注意到,在jQuery 1.6的.attr()状态

在jQuery 1.6,未定义对于尚未被设定属性.attr()方法返回。 检索和修改DOM属性,如checkedselected ,或disabled形式元素的状态,使用.prop()方法。

所以,你应该使用

minage.removeAttr('data-parsley-minagecheck')
    .attr('data-parsley-excluded', '').prop('disabled', true);


文章来源: ParlseyJS - remove validation from disabled fields