正在学习js,遇到一个问题:
用js代码向table添加一行后,无法取得文本框的值,代码如下:
HTML代码:
<table id = "myTable" border="1" width="40%" bordercolor="#BCD2EE" cellpadding="0" cellSpacing="0" align="center">
<tr>
<td>
<input type="text" name="file" id="file0" value="" size="100"/>
</td>
</tr>
<tr>
<td>
<div align="right" >
<input type="button" name="addRow" id="addRow" value="addRow" onclick="addRow('myTable')"/>
</div>
</td>
</tr>
</table>
js代码如下:
function addRow(myTable){
var objTable = document.getElementById(myTable);
var rowLength = objTable.rows.length;
var newRow = objTable.insertRow(rowLength-1);//insert before 'rowLength-1'
var newCell = newRow.insertCell(0);
var fileId = rowLength-newRow.rowIndex-1
//var txt = "<input type='text'"+" name='file"+ fileId + "'" + "id ='file" +fileId+ "'" + " value='' size='100'/>"
var txt = "<input type='text'"+" name='file' id ='file" +fileId+ "'" + " value='' size='100'/>"
newCell.innerHTML =txt;
//alert(document.getElementById("file"+fileId).value);
//alert(rowLength);
}function getTable(){
var objIdex;
var objInput = document.getElementsByName("file");
for(objIndex in objInput){//alert(objInput[objIndex].value); //alert(objIndex); //alert(objInput[objIndex]); if(isNaN(objInput[objIndex])){ alert(objInput[objIndex]); //objInput[objIndex].value = ""; } }
老是提示没有定义或是没有反映,而用下面的方法却能得到:
for (var i=0;i<objInput.length;i++){
alert(objInput[i].value);
}
for .... in 上面这种循环有上面区别?????
问题补充
我试了,在IE下显示length、file、file,在Firefox下显示了你所说的内容。
谢谢,明白了对DOM又有了新的认识!!!