我需要将客户端表单验证添加到HTML5表单。我不想破解我自己的解决方案,我不使用Angular。checkit验证是否有validate.js库中断?
由于我使用HTML5,因此pattern
和required
属性组合涵盖基本验证。
但是,在需要自定义验证的情况下,例如,需要勾选特定的复选框组合 - 我需要更多。
快速网络搜索带我到The 10 Best JavaScript Libraries for Form Validation and Formatting。
我测试了Validate.js,并验证复选框时出现问题。 Validate.js按名称结合特定的表单元素,例如
var validator = new FormValidator('example_form', [{
name: 'req',
rules: 'required'
});
相应的HTML表单:
<form name="example_form">
<input name="req" />
</form>
我决定把这个应用到一组复选框并实现自己的自定义规则(documented on Validate.js):
<form name="example_form">
<input type="checkbox" name="test" value="a">
<input type="checkbox" name="test" value="b">
<input type="checkbox" name="test" value="c">
</form>
首先,验证添加我的自定义规则的配置对象:
var validator = new FormValidator('example_form', [{
name: 'test',
rules: 'callback_my_rule'
});
...注意required
规则(开箱即用)已不存在,并已由我自己的规则callback_my_rule
取代。接下来,我定义my_rule
(按照文档中,callback_
前缀被删除):
validator.registerCallback('my_rule', function(value) {
var atLeastOne = ($('[name="test"]:checked').length > 0);
return atLeastOne;
});
的False
返回值是指验证失败,而True
是有效的。
问题是,如果没有勾选复选框,我的自定义验证功能my_rule
永远不会被调用。只有当我勾选复选框时才会调用该函数。选中某个复选框时只调用自定义验证函数似乎是不直观的。
然而,示例形式并验证该复选框,周围的Validate.js documentation源挖,I:
的Validate.js documentation提供一个复选框一个示例形式中,然而,该复选框验证函数从样品代码省略看到该复选框使用外的开箱required
规则:
问题
- 有没有人有Validate.js工作带复选框和自定义 验证功能?
- 有没有更好的自定义表格 验证库?
是否有在控制台的任何错误? – brso05
@ brso05 - 没有错误。 – Jack