如题。需要根据出生日期输入框的值计算目前年龄(周岁)。已找到可根据出生日期计算周岁的代码(使用原生js编写,既下面代码中的functionjsGetAge(strBirthday)),但在采用JQuery编写的主控制js(search.js)中无法调用。代码如下所示:html文件: ……(无关代码忽略)出生日期年龄岁search.js文件:functionjsGetAge(strBirthday){varreturnAge;varstrBirthdayArr=strBirthday.split("-");varbirthYear=strBirthdayArr[0];varbirthMonth=strBirthdayArr[1];varbirthDay=strBirthdayArr[2];d=newDate();varnowYear=d.getYear();varnowMonth=d.getMonth()+1;varnowDay=d.getDate();if(nowYear==birthYear){returnAge=0;//同年则为0岁}else{varageDiff=nowYear-birthYear;//年之差if(ageDiff>0){if(nowMonth==birthMonth){vardayDiff=nowDay-birthDay;//日之差if(dayDiff<0){returnAge=ageDiff-1;}else{returnAge=ageDiff;}}else{varmonthDiff=nowMonth-birthMonth;//月之差if(monthDiff<0){returnAge=ageDiff-1;}else{returnAge=ageDiff;}}}else{returnAge=-1;//返回-1表示出生日期输入错误晚于今天}}returnreturnAge;//返回周岁年龄}$(document).ready(function(){$("#age").click(function(){alert(jsGetAge($("#birthday").val()))if($("#birthday").val()!=""){//由于采用日历控件,可保证字符串格式正确varage=jsGetAge($("birthday").val())if(age>=0){$("#age").val()=age$("#age").attr("readonly",true)}else{$("#birthday").val()=""alert("出生日期不能晚于今天")}}})})经测试,alert(jsGetAge($("#birthday").val()))无法弹出对应警告框,因此个人认为是jquery中调用js的function产生的问题。大家有什么解决方案吗?谢谢。
慕桂英3389331
哈士奇WWW
随时随地看视频慕课网APP
相关分类