這個就類似于QQ等軟體填寫個人資訊處的生日後年齡就會自動被計算出。
思路:
監聽下拉框内容的改變
1、設定年齡的輸入框不可編輯,我為了讓其以後能往背景傳輸資料,其屬性設定為:readonly unselectable="on",該設定表示input 元素,不可編輯,不可複制,不可選擇,不能接收焦點,設定後文字的顔色也會變成灰色,但是背景可以接收到傳值。
2、擷取目前日期的年月日
3、擷取日期下拉框内容,将其轉化為數值型
4、通過計算得出相應年齡并顯示在文本框中。
相關界面示範:
初始界面:日期顯示的是目前日期
選擇相應日期,年齡就會自動顯示在文本框内:
選擇大于目前日期的時間,浏覽器會提示錯誤,點選确定後年齡輸入框内容為空:
以下為核心代碼:
<script type="text/javascript">
$(function () {
$(".select").change(function(){
var date=new Date();
var nowYear = date.getFullYear();
var nowMonth = date.getMonth()+1;
var nowDay = date.getDate();
nowYear = parseInt(nowYear);
nowMonth = parseInt(nowMonth);
nowDay = parseInt(nowDay);
var birthYear = $("#YYYY" ).find("option:selected").text();
var birthMonth = $("#MM").find("option:selected").text();
var birthDay = $("#DD").find("option:selected").text();
birthYear = parseInt(birthYear);
birthMonth = parseInt(birthMonth);
birthDay = parseInt(birthDay);
if(nowYear==birthYear){
if((nowMonth>birthMonth)||(nowMonth==birthMonth)&&(nowDay>=birthDay)){
$("#age").val("0");
}else{
alert("生日選擇有誤,請重新選擇");
$("#age").val("");
}
}else{
var ageYearSub = nowYear - birthYear;
if(ageYearSub>0){
if(nowMonth==birthMonth){
var ageDaySub = nowDay-birthDay;
if(ageDaySub<0){
var age = ageYearSub-1;
$("#age").val(age);
}else{
$("#age").val(ageYearSub);
}
}else{
var ageMonthSub = nowMonth-birthMonth;
if(ageMonthSub<0){
var age2 = ageYearSub-1;
$("#age").val(age2);
}else{
$("#age").val(ageYearSub);
}
}
}
}
});
});