我有以下html代码,其中包含一些关于用户教育的字段。
<table border="0" style="margin: auto; ">
<td width="60%" >
<fieldset style="width:530px; padding-left:5px; background-color:white " >
<INPUT type="button" value="Add new Table" onclick="addRow('dataTable')" />
School/University/College*</br>
<input name="school_1" type="text" size="73"/>
</br></br>
Field of Study</br>
<input name="field_1" type="text" size="73"/>
</br></br>
Specialized subjects</br>
<input name="specialized_subject_1" type="text" size="73" />
</br></br>
Degree</br>
<input name="degree_1" type="text" size="73"/>
</br></br>
Grade</br>
<input name="grade_1" type="text" size="73" />
</br></br></br>
Attended from: <select name="month_1_1">
<option value=" "> EMPTY </option>
<option value="January">January</option>
</select>
<select id="year_1_1" name="year_1_1">
<option value=" "> EMPTY </option>
<option value="2009">2009</option>
</select>
Until: <select name="month_1_2">
<option value=" "> EMPTY </option>
<option value="January">January</option>
</select>
<select name="year_1_2">
<option value=" "> EMPTY </option>
<option value="2009">2009</option>
</select>
</h2></font>
</fieldset>
</td>
</table>
我正在使用以下Javascript代码,以便用户在此下添加新表,以便在他想要的情况下添加有关他的教育的更多详细信息。我的Javascript代码不起作用。任何想法如何解决这个问题?
<SCRIPT language="javascript">
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[0].cells[i].innerHTML;
//alert(newcell.childNodes);
switch(newcell.childNodes[0].type) {
case "text":
newcell.childNodes[0].value = "";
break;
case "select-one":
newcell.childNodes[0].selectedIndex = 0;
break;
}
}
}
</SCRIPT>
答案 0 :(得分:1)
替换这个:
<table border="0" style="margin: auto; ">
用这个:
<table border="0" style="margin: auto;" id="dataTable">
每当你不知道javascript代码中的错误是什么时,你应该检查控制台。我不知道您使用哪个浏览器进行调试,但您可以查看here在哪里找到javascript控制台。
你的javascript在我的控制台中抛出了这个错误:
TypeError: 'null' is not an object (evaluating 'table.rows')
表示table
为null
。当您使用getElementById
定义表时,我刚看到html页面中实际上并不存在该ID。
要进一步回答有关限制表数的问题,请将整个代码包装在if语句中并声明一个全局变量。
<SCRIPT language="javascript">
var counter = 0;
if (counter > 9)
alert("can't add more");
else {
counter++;
// paste your actual JS code here
}
</SCRIPT>