JavaScript 中的出生日期验证
Birthdate Validation in JavaScript
我正在尝试验证生日日期,但我只能在全部填写的情况下进行验证。如果我只选择日期,则没有警报("必须选择日期/必须选择月份")。我无法验证日期...如何运行此验证?
function isbday(day,month,year) {
var mth = month;
var dy = day;
var yr = year;
if((mth < 1) || (mth > 12));
else if((dy < 1) || (dy > 31));
else if(((mth == 4) || (mth == 6) || (mth == 9) || (mth == 11)) && (dy > 30));
else if((mth == 2) && (((yr % 400) == 0) || ((yr % 4) == 0)) && ((yr % 100) != 0) && (day > 29));
else if((mth == 2) && ((yr % 100) == 0) && (dy > 29));
else if((mth == 2) && (dy > 28)) valid = false;
return false;
alert("Birthdate must be filled");
}
function validate(){
var day = document.getElementsByName("xday")[0].value;
var month = document.getElementsByName("xmonth")[0].value;
var year = document.getElementsByName("xyear")[0].value;
if(day,month,year == null || day,month,year == ""){
alert("Birthdate must be filled");
}else if(birthdate.match(isbday(birthdate))){
alert("Birthdate must be filled");
}else
{
alert("Birthdate success");
}
}
<tr>
<td >Birthdate </td>
<td><select name="xday">
<option value="">Date</option>
<script>
var myDate = new Date();
var year = myDate.getFullYear();
for(var i = 1; i < 32; i++){
document.write('<option value="'+i+'">'+i+'</option>');
}
</script>
</select>
<select name="xmonth">
<option value="">Month</option>
<script>
var myDate = new Date();
var year = myDate.getFullYear();
for(var i = 1; i < 13; i++){
document.write('<option value="'+i+'">'+i+'</option>');
}
</script>
</select>
<select name="xyear">
<option value="">Year</option>
<script>
var myDate = new Date();
var year = myDate.getFullYear();
for(var i = 1950; i < year; i++){
document.write('<option value="'+i+'">'+i+'</option>');
}
</script>
</select>
</td>
</tr>
<tr>
<td>
<input type="button" name="btnRegis" onClick="validate()" onsub value="Register"/>
</td>
</tr>
我认为
最好的方法是根据选择的月份更改日期选择,但如果您仍然想以相同的方式执行此操作:
稍微更改一下您的有效函数
如果无效,则每个 if 语句返回 false
function isVaild(day, month, year) {
var mth = month;
var dy = day;
var yr = year;
//Checks
if ((mth < 1) || (mth > 12)) return false;
else if ((dy < 1) || (dy > 31)) return false;
else if (((mth == 4) || (mth == 6) || (mth == 9) || (mth == 11)) && (dy > 30)) return false;
else if ((mth == 2) && (((yr % 400) == 0) || ((yr % 4) == 0)) && ((yr % 100) != 0) && (day > 29)) return false;
else if ((mth == 2) && ((yr % 100) == 0) && (dy > 29)) return false;
else if ((mth == 2) && (dy > 28)) return false;
//Pass all checks
return true;
}
function validate() {
var day = document.getElementsByName("xday")[0].value;
var month = document.getElementsByName("xmonth")[0].value;
var year = document.getElementsByName("xyear")[0].value;
//if one is empty
if (day, month, year === null || day, month, year === "") {
alert("Birthdate must be filled'nDay, Month, Year is empty");
}
//if not a vaild date
else if (!isVaild(day, month, year)) {
alert("Birthdate not vaild");
}
//All good :)
else {
alert("Birthdate success");
}
}
这里的工作示例
相关文章:
- Javascript出生日期难题
- 如何在出生日期下拉列表中设置开始年份
- 我需要让用户输入他的出生日期,并使用javascript检查其形式是否正确.我的代码不起作用
- 如何根据当前时间从当前年龄计算出生日期
- jQuery在多个文本字段中验证出生日期
- 如何在日期选择器中给出出生日期验证
- 如何使用下拉列表验证结束日期必须大于开始日期
- 如何使用jquery验证器的日期月年三个文本框验证出生日期
- 无法完全使日期正确无效/验证(到达日期)
- 在更改时验证引导日期选取器字段
- JavaScript 中的出生日期验证
- 在javascript中验证出生日期
- 如何使用Jquery.ui.datepicker.css验证出生日期和死亡日期文本框
- ASP.Net:三个下拉菜单和使用javascript的出生日期选择验证
- JavaScript出生日期验证
- 从出生日期开始验证年龄
- 正在验证出生日期注册日历
- Bootstrap日期时间选择器中的出生日期验证
- 年龄和出生日期验证 JavaScript
- JavaScript表单验证,确保出生日期是4位数字长