ParlseyJS-从禁用的字段中删除验证
ParlseyJS - remove validation from disabled fields
刚刚开始使用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]',
将Parsley绑定到表单后,仅移除属性是不够的。这是因为Parsley将创建一个具有该表单约束的ParsleyForm
对象
此外,在Parsley绑定到表单时,excluded
选项将被考虑在内。在您的情况下,字段尚未被禁用,因此出于验证目的,将考虑它们。
您需要的是在删除属性后销毁并应用欧芹,这样ParsleyForm
就不包含这些字段。如果您使用的是Parsley v2,您应该在删除或插入属性后添加此代码:
$("#myForm").parsley().destroy();
$("#myForm").parsley();
还要注意,从jQuery 1.6开始,.attr()状态为
从jQuery 1.6开始,.attr()方法为尚未设置的属性返回undefined要检索和更改DOM属性,如表单元素的
checked
、selected
或disabled
状态,请使用.prp()方法
所以你应该使用
minage.removeAttr('data-parsley-minagecheck')
.attr('data-parsley-excluded', '').prop('disabled', true);
相关文章:
- 正在删除node.js中已验证的网站
- 从所有元素中删除HTML5验证
- preventDefault而不删除html5验证
- 在验证之前从输入值中删除文本并提交
- 如何从Knockout validation中的可观察项中删除验证规则[extenders]
- 如何从HTML5输入中删除验证错误
- AngularJS摘要周期错误,ngmodel在自定义验证时被删除
- 重置表单后未删除验证消息
- JS如何捕获基于键入然后删除的字符的字段验证逻辑
- jquery验证插件-错误删除
- 在$invalid上添加验证指令并从文本框中删除数据的指令
- 如何从jQuery验证插件函数中删除AJAX
- JQuery 验证 - 在表单中添加/删除错误 css 类
- ParlseyJS-从禁用的字段中删除验证
- Javascript删除验证是否“;好的”;或“;取消”;
- 调用event.preventDefault()后将删除验证
- 我想从网页中自动删除验证码
- 删除验证在加载数据时停止计数错误
- 如何从jQuery脚本中删除验证
- 如何从理想表单jQuery中删除验证规则