使用jQuery用通用规则验证表单
Validating forms with common rules using jQuery
我有多个表单,它们都有共同的字段(例如email
),每个表单都有独特的字段(例如,表格A上的uniqueFieldA
,表格B上的uniqueFieldB
)。
我想做的是:编写一组验证规则(使用jQuery验证插件)为公共字段一次,并"包含"这些规则在多个地方(每个表单),然后添加在该特定表单的唯一规则。
像这样:
简化HTML:
<form id="formA">
<input name="email" />
<input name="uniqueFieldA" />
</form>
<form id="formB">
<input name="email" />
<input name="uniqueFieldB" />
</form>
JS:
// Define rules common to all forms
var commonRules = {
email: {
required: true,
email: true
},
}
// Define rules for form A
$("#formA").validate({
rules: {
commonRules, //"include" common rules
uniqueFieldA: "required" //rule unique to this form
}
})
// Define rules for form B
$("#formB").validate({
rules: {
commonRules, //"include" common rules
uniqueFieldB: "required" //rule unique to this form
}
})
如何实现这一点(假设使用了完整、正确的HTML)?
由于这不是语法上有效的JavaScript (JSLint可以告诉你),不,它将不起作用
$.extend
在这里是你的朋友。试试这个(未测试):
// Define rules common to all forms
var commonRules = {
email: {
required: true,
email: true
},
};
// Define rules for form A
$("#formA").validate({
rules: $.extend({
uniqueFieldA: "required"
}, commonRules)
});
// Define rules for form B
$("#formB").validate({
rules: $.extend({
uniqueFieldB: "required"
}, commonRules)
});
如果公共规则和特定于表单的规则有任何重叠,您可能需要执行递归合并("深度扩展")。
相关文章:
- JAVASCRIPT验证表单中的日期
- 如何在使用ajax提交的codeigniter中使用form_validation验证表单数据
- 如何使用jQuery正确验证表单
- Javascript不会验证表单
- 如何使用javascript验证表单中的数据,然后调用php页面
- 包括来自另一个页面的Boostrap模态;t验证表单
- Javascript验证表单不重定向页面
- 在提交之前验证表单,jQuery发布到javaScript,然后提交到确认页面
- 引导复选框-x 选中时未正确更新 DOM - 如何验证表单
- Jquery 验证表单
- 验证表单中的 jQuery-UI 微调器
- 在 Jquery 中验证表单的输入字段
- 如何验证表单控制数据大小不超过2.5 mb
- 在表单进入Angular中的ng-submit之前验证表单
- Javascript表单验证:表单在错误返回时提交:
- 使用Angular.js验证表单输入的原始状态
- 正在复制验证表单
- 如何在转盘中逐步(3步)验证表单
- 使用javascript验证表单值
- 验证表单按id输入val