首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery验证不触发方法

jQuery验证不触发方法
EN

Stack Overflow用户
提问于 2016-06-07 19:28:24
回答 1查看 60关注 0票数 0

我已经向jQuery.validator添加了另一个方法来验证日期,但它似乎不会在网页刷新时执行(甚至不显示警报)。注意:“oneOfGroup”方法可以正确执行。

代码语言:javascript
运行
复制
$.validator.addMethod("validDate",
function(value, element) { alert("Here");
// Validate date
return value.match(/^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/);
},
"Please enter a date in the format dd/mm/yyyy.");

$.validator.addMethod("oneOfGroup", 
function(value, element) { 
var result = (($("input[name$='txtDateOfBirth']").val().length > 0) || ($("input[name$='txtCBHRef']").val().length > 0) || ($("input[name$='txtCardNumber']").val().length > 0) || ($("input[name$='txtNationalInsuranceNumber']").val().length > 0));   //TA 
return result;
}, 
"At Least One Required");

function customValidate() {
$("#serverForm").validate(
{
rules: {
<%=txtFirstName.UniqueID %>: { required: true }
,
<%=txtSurname.UniqueID %>: { required: true }
,
<%=txtDateOfBirth.UniqueID %>: { date: true }
,
<%=txtDateOfBirth.UniqueID %>: { validDate: true }
,
<%=txtDateOfBirth.UniqueID %>: { oneOfGroup: true }  //TA
,
<%=txtCBHRef.UniqueID %>: { oneOfGroup: true }
,
<%=txtCardNumber.UniqueID %>: { oneOfGroup: true }
,
<%=txtNationalInsuranceNumber.UniqueID %>: { oneOfGroup: true }
},
messages: {
<%=txtFirstName.UniqueID %>: { required: "Required Field" }
,
<%=txtSurname.UniqueID %>: { required: "Required Field" }
,
<%=txtDateOfBirth.UniqueID %>: {  date: "Invalid Date" }
,
<%=txtDateOfBirth.UniqueID %>: {  validDate: "Invalid Date" }
,
<%=txtDateOfBirth.UniqueID %>: {  required: "Required Field" }  //TA
,
<%=txtCBHRef.UniqueID %>: { required: "Required Field" }
,
<%=txtCardNumber.UniqueID %>: { required: "Required Field" }
,
<%=txtNationalInsuranceNumber.UniqueID %>: { required: "Required Field" }
}

});

有什么建议可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-09 16:24:58

我的错误之处在于为每个方法的同一字段创建多个规则,而不是为每个应用的方法创建一个规则。

代码语言:javascript
运行
复制
rules: {
.....
          <%=txtDateOfBirth.UniqueID %>: { oneOfGroup: true, validDate: true }
.....
},
Messages: {
.....
<%=txtDateOfBirth.UniqueID %>: { validDate: "Invalid Date/Format (dd/mm/yyyy)", required: "Required Field" }
.....
}

都整理好了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37678134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档