jQuery在多个文本字段中验证出生日期
jquery validate date of birth in multiple text fields
我一直在寻找一种明确的方式来验证出生日期,当它被分成三个不同的文本字段时。到目前为止,我有一个正确处理它的输入字段,但我无法更改 html 代码。所以我仍然需要这个来遵守 3 文本字段组。我读到使用隐藏的输入字段来验证在三个字段中输入的出生日期值可能是一种解决方案。谁能帮我这个。
这是我的jsfiddle:http://jsfiddle.net/b8fubr5u/1/
$(document).ready(function () {
$.validator.addMethod("dob", function (value, element) {
var result = true;
var ageMin = 18;
var ageMax = 85;
//is the date valid?
//is it within the allowed range
var myDate = value.split("/");
var subDay = myDate[0];
var subMonth = myDate[1] - 1;
var subYear = myDate[2];
var subDate = new Date(subYear, subMonth, subDay);
// this will "correct" any out of range input
var calcDay = subDate.getDate();
var calcMonth = subDate.getMonth();
var calcYear = subDate.getFullYear();
// this checks to see if any of the submitted input was out of range
// comment this out to ignore the discrepancy if you want to set a "corrected" value below
if (calcDay != subDay || calcMonth != subMonth || calcYear != subYear) {
$.validator.messages.dob = "Invalid date";
result = false;
}
if (result) {
var currDate = new Date();
var currYear = currDate.getFullYear();
var currMonth = currDate.getMonth();
var currDay = currDate.getDate();
var age = currYear - subYear;
if (subMonth > currMonth) {
age = age - 1; // next birthday not yet reached
} else if (subMonth == currMonth && currDay < subDay) {
age = age - 1;
}
if (ageMin != undefined) {
if (age < ageMin) {
$.validator.messages.dob = "Min 18 years old";
result = false;
}
}
if (ageMax != undefined) {
if (age > ageMax) {
$.validator.messages.dob = "Invalid date";
result = false;
}
}
}
return result;
},
"Please enter a date in the format DD/MM/YYYY");
$("#form").validate({
rules: {
dateBirth: {
required: true,
dob: true
},
month: {
required: true,
dob: true
},
dobDay: {
required: true,
range: [1, 31]
},
dobMonth: {
required: true,
range: [1, 12]
},
dobYear: {
required: true
}
}
});
});
你可以使用这个:
$(".bday").on('keyup',function(){
var bday = $('[name="dobDay"]').val()+"/"+$('[name="dobMonth"]').val()+"/"+$('[name="dobYear"]').val();
$("#dateBirth").val(bday );
});
这是小提琴的工作:http://jsfiddle.net/b8fubr5u/8/
相关文章:
- Javascript出生日期难题
- 如何在出生日期下拉列表中设置开始年份
- 我需要让用户输入他的出生日期,并使用javascript检查其形式是否正确.我的代码不起作用
- 如何根据当前时间从当前年龄计算出生日期
- jQuery在多个文本字段中验证出生日期
- 如何在日期选择器中给出出生日期验证
- 如何使用下拉列表验证结束日期必须大于开始日期
- 如何使用jquery验证器的日期月年三个文本框验证出生日期
- 无法完全使日期正确无效/验证(到达日期)
- 在更改时验证引导日期选取器字段
- JavaScript 中的出生日期验证
- 在javascript中验证出生日期
- 如何使用Jquery.ui.datepicker.css验证出生日期和死亡日期文本框
- ASP.Net:三个下拉菜单和使用javascript的出生日期选择验证
- JavaScript出生日期验证
- 从出生日期开始验证年龄
- 正在验证出生日期注册日历
- Bootstrap日期时间选择器中的出生日期验证
- 年龄和出生日期验证 JavaScript
- JavaScript表单验证,确保出生日期是4位数字长