如題。需要根據出生日期輸入框的值計算目前年齡(周歲)。已找到可根據出生日期計算周歲的代碼(使用原生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產生的問題。大家有什么解決方案嗎?謝謝。
個人認為是jquery中調用js的function產生的問題,大家有什么建議么?
森林海
2023-04-26 21:17:20