如何通过jQuery Validator使用日期月份年份的三个文本框来验证出生日期 [英] how to validate Date of birth with three textbox of date month year by jquery validator
本文介绍了如何通过jQuery Validator使用日期月份年份的三个文本框来验证出生日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要使用带有三个单独文本框的jquery验证器来验证出生日期.
如何执行此操作,请帮忙.
HTML代码
<input type="text" maxlength="2" placeholder="DD" class="dob-day fillone" name="dob-day" id="dob-day" data-fieldgroup="dob" data-fillone-field="true" />
<input type="text" maxlength="2" placeholder="MM" id="dob-month" class="dob-month fillone" data-fieldgroup="dob" data-fillone-field="true">
<input type="text" maxlength="4" placeholder="YYYY" class="dob-year fillone" id="dob-year" data-fieldgroup="dob" data-fillone-field="true">
我正在使用数据组对文本框进行分组
解决方案
您应该为此创建自定义验证方法,并使用validate提供的groups
选项:
/* Custom validation method to validate a date based on several fields: */
$.validator.addMethod("datemultiple", function(value, element, params) {
var daySelector = params[0],
monthSelector = params[1],
yearSelector = params[2],
day = parseInt($(daySelector).val(), 10),
month = parseInt($(monthSelector).val(), 10),
year = parseInt($(yearSelector).val(), 10),
dateEntered = new Date(year, month - 1, day);
return this.optional(element) || !isNaN(dateEntered.valueOf());
}, "Please enter a valid date");
$(document).ready(function() {
$("#myform").validate({
groups: {
/* Only display one validation message for day, month, and year: */
dateOfBirth: "dob-day dob-month dob-year"
},
rules: {
'dob-day': {
required: true,
datemultiple: ["#dob-day", "#dob-month", "#dob-year"]
},
'dob-month': {
required: true
}
},
/* Place error messages after the "year" field */
errorPlacement: function ($error, $element) {
if ($element.data("fieldgroup") === "dob") {
$error.insertAfter("#dob-year");
}
}
});
});
示例: http://jsfiddle.net/xHC86/ >
I need to validate date of birth by using jquery validator with three separate textbox for day month and year.
How to do this please help.
HTML code
<input type="text" maxlength="2" placeholder="DD" class="dob-day fillone" name="dob-day" id="dob-day" data-fieldgroup="dob" data-fillone-field="true" />
<input type="text" maxlength="2" placeholder="MM" id="dob-month" class="dob-month fillone" data-fieldgroup="dob" data-fillone-field="true">
<input type="text" maxlength="4" placeholder="YYYY" class="dob-year fillone" id="dob-year" data-fieldgroup="dob" data-fillone-field="true">
I am using data-group for grouping the textbox
解决方案
You should create a custom validation method for this, along with using the groups
option that validate provides:
/* Custom validation method to validate a date based on several fields: */
$.validator.addMethod("datemultiple", function(value, element, params) {
var daySelector = params[0],
monthSelector = params[1],
yearSelector = params[2],
day = parseInt($(daySelector).val(), 10),
month = parseInt($(monthSelector).val(), 10),
year = parseInt($(yearSelector).val(), 10),
dateEntered = new Date(year, month - 1, day);
return this.optional(element) || !isNaN(dateEntered.valueOf());
}, "Please enter a valid date");
$(document).ready(function() {
$("#myform").validate({
groups: {
/* Only display one validation message for day, month, and year: */
dateOfBirth: "dob-day dob-month dob-year"
},
rules: {
'dob-day': {
required: true,
datemultiple: ["#dob-day", "#dob-month", "#dob-year"]
},
'dob-month': {
required: true
}
},
/* Place error messages after the "year" field */
errorPlacement: function ($error, $element) {
if ($element.data("fieldgroup") === "dob") {
$error.insertAfter("#dob-year");
}
}
});
});
Example: http://jsfiddle.net/xHC86/
这篇关于如何通过jQuery Validator使用日期月份年份的三个文本框来验证出生日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文