我想從javascript創建的html選擇獲得年份,但是應該讀取數據的javascript函數找不到它。無法從Javascript生成的表格獲取數據
下面是index.html的代碼
<html>
<head>
<SCRIPT language="JavaScript" SRC="./js/calendar.js"></SCRIPT>
</head>
<body onload="yearList()">
<div id="form">
<table>
<form name="cal_form">
<tr>
<td>Month:</td>
<td>
<select name="month">
<option value="January">January</option>
<option value="February">February</option>
<option value="March">March</option>
<option value="April">April</option>
<option value="May">May</option>
<option value="June">June</option>
<option value="July">July</option>
<option value="August">August</option>
<option value="September">September</option>
<option value="October">October</option>
<option value="November">November</option>
<option value="December">December</option>
</select>
</td>
</tr>
<tr>
<td>Year:</td>
<td id="yearoptiondiv">
</td>
</tr>
<tr>
<td colspan="2">
<button type="button" onclick="drawCalendar(gen_cal_settings())">Draw Calendar</button>
</td>
</tr>
</form>
</table>
</div>
<div id="calendar"></div>
</body>
這裏是今年的榜單在onload事件跑了爲calendar.js
function drawCalendar(cal_settings){
var calendarTable;
calendarTable += '<table>';
calendarTable += '<tr>';
calendarTable += '<td colspan="2">';
calendarTable += cal_settings["month"] + " " + cal_settings["year"];
calendarTable += '</td>';
calendarTable += '</tr>';
calendarTable += '</table>';
document.getElementById("calendar").innerHTML=calendarTable;
}
function yearList(){
var x="",i;
x += "<select name='year'>";
for (i=2011;i<=3012;i++)
{
x += "<option value='" + i + "'>" + i + "</option>";
}
x += "</select>";
document.getElementById("yearoptiondiv").innerHTML=x;
}
function gen_cal_settings(){
var cal_settings = new Array();
cal_settings["month"]=document.forms['cal_form']['month'].value;
cal_settings["year"]=document.forms['cal_form']['year'].value;
return cal_settings;
}
代碼頁面的正文。 我在做什麼錯?
請,它傷害了我的眼睛:(請儘量不要使用你的HTML內聯這麼多的代碼,這真是不可維護的考慮非侵入性的。 JavaScript和添加事件監聽器使用addEventListener而不是 – 2012-07-05 16:52:26
我會怎麼做呢? – Talon06 2012-07-05 16:53:57
爲什麼通過不顯眼的javascript:http://en.wikipedia.org/wiki/Unobtrusive_JavaScript。例如,爲了向一個函數添加一個事件監聽器(例如onClick),你可以使用內置於大多數現代瀏覽器的addEventListener方法,或者更好的方法是使用jQuery來處理這個問題 – 2012-07-05 16:55:15