js生年月日確認

2948 ワード

今回の卒業設計では、従業員の情報を追加する時に生年月日を記入するという小さな問題があります.もちろん、通常のやり方はプルダウンリストで行います.月日は3つのプルダウンリストで行います.
<td height="40" align="right">    :</td>
    <td><select name="selectYear" id="selectYear" onChange="changeMonth()">
	      
    </select>
     
    <select name="selectMonth" id="selectMonth" onChange="changeMonth()">
     
    </select>
     
    <select name="selectDay" id="selectDay">
     
    </select>
     </td>
最初の時は直接にselectにoptionを追加したいです.例えば、月に直接に12のoptionを追加して、日に31のoptionを追加します.でも、その後はおかしいです.このように添加するのは面倒くさいです.なぜjsを使わないで自動的に添加しますか?実はこれも簡単ですよ.o()^)oはい、まだ未経験の表現です.実はこのようなものは第一印象はjsです.早くしてください.実はここでJSを使ってコードをもっと丈夫にしてもいいです.BUGは現れません.私が始めたようにすれば、2月31日のような不条理な日付が現れます.JSはこれらの問題を完全に解決できます.
var yearObj = null;
var monthObj = null;
var dayObj = null;

function showBirthDay() {
		yearObj = document.tableForm.selectYear;
		monthObj = document.tableForm.selectMonth;
	 	dayObj = document.tableForm.selectDay;
		//           
		yearObj.options.length = 0;
		monthObj.options.length = 0;
		dayObj.options.length = 0;
		for(var i = 1900; i < 2012; i++) {	
			//$("<option value="+i+">"+i+"</option>").appendTo(yearObj);
			var year = new Option(i,i);
			yearObj.options.add(year);
		}
		for(var i = 1; i <= 12; i++) {
			var month = new Option(i,i);
			monthObj.options.add(month);
		}
		for(var i = 1; i <= 31; i++) {
			var day = new Option(i,i);
			dayObj.options.add(day);
		}
	
	}
		
	//      ,        。
	function changeMonth() {
		
		yearObj = document.tableForm.selectYear;
		monthObj = document.tableForm.selectMonth;
	 	dayObj = document.tableForm.selectDay;
		
		dayObj.options.length = 0;
		var month = monthObj.value;
		var year = yearObj.value;
		//   4,6,9,11 ,  30 
		if(month == 4 || month == 6 || month == 9 || month == 11){
			for(var i = 1; i <= 30; i++) {
				var day = new Option(i,i);
				dayObj.options.add(day);
			}
		}
		//   2 , 
		else if(month == 2) {
			if((year%4==0 && year%100!=0) || year%400==0) {
				for(var i = 1; i <= 29; i++) {
					var day = new Option(i,i);
					dayObj.options.add(day);
				}
			}else {
				for(var i = 1; i <= 28; i++) {
					var day = new Option(i,i);
					dayObj.options.add(day);
				}
			}
		}
		//      31 
		else {
			for(var i = 1; i <= 31; i++) {
				var day = new Option(i,i);
				dayObj.options.add(day);
			}
		}
	}