如题。需要根据出生日期输入框的值计算目前年龄(周岁)。已找到可根据出生日期计算周岁的代码(使用原生js编写,既下面代码中的function jsGetAge(strBirthday)),但在采用JQuery编写的主控制js(search.js)中无法调用。代码如下所示:
html文件:
<script type="text/javascript" src="js/jquery-1.8.2.min.js"></script> <script type="text/javascript" src="js/search.js"></script> ……(无关代码忽略) 出生日期 <input name="info.birthday" type="text" id="birthday" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})" class="Wdate" /> 年龄 <input class="shortText" name="info.age" type="text" id="age" /> 岁
search.js文件:
function jsGetAge(strBirthday) { var returnAge; var strBirthdayArr=strBirthday.split("-"); var birthYear = strBirthdayArr[0]; var birthMonth = strBirthdayArr[1]; var birthDay = strBirthdayArr[2]; d = new Date(); var nowYear = d.getYear(); var nowMonth = d.getMonth() + 1; var nowDay = d.getDate(); if(nowYear == birthYear) { returnAge = 0;//同年 则为0岁 } else { var ageDiff = nowYear - birthYear ; //年之差 if(ageDiff > 0) { if(nowMonth == birthMonth){ var dayDiff = nowDay - birthDay;//日之差 if(dayDiff < 0) {returnAge = ageDiff - 1;} else {returnAge = ageDiff ;} }else{ var monthDiff = nowMonth - birthMonth;//月之差 if(monthDiff < 0) {returnAge = ageDiff - 1;} else {returnAge = ageDiff ;} } } else {returnAge = -1;//返回-1 表示出生日期输入错误 晚于今天} } return returnAge;//返回周岁年龄} $(document).ready(function() { $("#age").click(function(){ alert(jsGetAge($("#birthday").val())) if($("#birthday").val()!=""){//由于采用日历控件,可保证字符串格式正确 var age = jsGetAge($("birthday").val()) if(age>=0){ $("#age").val()=age $("#age").attr("readonly",true) }else{ $("#birthday").val()="" alert("出生日期不能晚于今天") } } }) })
经测试,alert(jsGetAge($("#birthday").val()))无法弹出对应警告框,因此个人认为是jquery中调用js的function产生的问题。大家有什么解决方案吗?谢谢。
慕田峪4524236
达令说
相关分类