正在学习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>
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);
}
当你使用
[code="javascript"]
alert(objIndex)
[/code]
进行DEBUG的时候,你会发现你列出的还包括了DOM以外的Array.prototype元素,因为一个DOM QUERY里,比如document.getElementsByTagName, 还包含了下列元素:
length, item, namedItem, 其中item和namedItem是函数,length是给出的DOM元素的个数,也就是一个DOM QUERY的格式是这样的:
[code="javascript"]
{
“0”:{
//第一个检索出的TAG == 'file'的所有DOM元素
},
length:1,
item:function(){//内嵌函数item},
namedItem:function(){//内嵌函数namedItemneiq}
}
[/code]
你在for(var i=0;i<l;i++){} 里是无法获得数组以外的元素的,所以推荐你不要用for(var x in xx){}在DOM检索里
[code="js"]
$(function(){
$(":text[pid]").blur(function(){
$.post("${initParam.domain}/ModifyQuantity.do", {id:$(this).attr("pid"),quantity:$(this).val()},modHandler,"json");
});
});
function modHandler(json){
$("tr[pid="+ json.id +"] td:eq(6)").text("¥"+json.itemSum).effect("highlight",{},4000);;
$("#finalSaved").text("¥"+json.finalSaved).effect("highlight",{},4000);
$("#finalTotal").text("¥"+json.finalTotal).effect("highlight",{},4000);
$("#ajaxMsg").hide().fadeIn(1000).fadeOut(3000);
}
[/code]
[code="js"]
$(function(){
$(":text[pid]").blur(function(){
$.post("${initParam.domain}/ModifyQuantity.do",
{id:$(this).attr("pid"),quantity:$(this).val()},
modHandler,"json");
});
});
function modHandler(json){
$("tr[pid="+ json.id +"] td:eq(6)")
.text("¥"+json.itemSum).effect("highlight",{},4000);;
$("#finalSaved").text("¥"+json.finalSaved).effect("highlight",{},4000);
$("#finalTotal").text("¥"+json.finalTotal).effect("highlight",{},4000);
$("#ajaxMsg").hide().fadeIn(1000).fadeOut(3000);
}
[/code]
[code="js"]
$(function(){
$(":text[pid]").blur(function(){//处理输入框的失去焦点事件
//通过JQuery的post函数发起Ajax请求
$.post("${initParam.domain}/ModifyQuantity.do",
{id:$(this).attr("pid"),quantity:$(this).val()},
modHandler,"json");
});
});
function modHandler(json){//回调函数,取得JSON数据更新相应页面数据
$("tr[pid="+ json.id +"] td:eq(6)")
.text("¥"+json.itemSum).effect("highlight",{},4000);;
$("#finalSaved").text("¥"+json.finalSaved).effect("highlight",{},4000);
$("#finalTotal").text("¥"+json.finalTotal).effect("highlight",{},4000);
$("#ajaxMsg").hide().fadeIn(1000).fadeOut(3000);
}
[/code]
[code="js"]
$(function(){
$(":text[pid]").blur(function(){//处理输入框的失去焦点事件
//通过JQuery的post函数发起Ajax请求
$.post("${initParam.domain}/ModifyQuantity.do",
{id:$(this).attr("pid"),quantity:$(this).val()},
modHandler,"json");
});
});
function modHandler(json){//回调函数,取得JSON数据更新相应页面数据
$("tr[pid="+ json.id +"] td:eq(6)")
.text("¥"+json.itemSum).effect("highlight",{},4000);
$("#finalSaved").text("¥"+json.finalSaved).effect("highlight",{},4000);
$("#finalTotal").text("¥"+json.finalTotal).effect("highlight",{},4000);
$("#ajaxMsg").hide().fadeIn(1000).fadeOut(3000);
}
[/code]
[code="js"]
$(function(){
$(":text[pid]").blur(function(){//处理输入框的失去焦点事件
//通过JQuery的post函数发起Ajax请求
$.post("${initParam.domain}/ModifyQuantity.do",
{id:$(this).attr("pid"),quantity:$(this).val()},
modHandler,"json");
});
});
function modHandler(json){//回调函数,取得JSON数据更新相应页面数据
$("tr[pid="+ json.id +"] td:eq(6)")
.text("¥"+json.itemSum).effect("highlight",{},4000);
$("#finalSaved").text("¥"+json.finalSaved).effect("highlight",{},4000);
$("#finalTotal").text("¥"+json.finalTotal).effect("highlight",{},4000);
$("#ajaxMsg").hide().fadeIn(1000).fadeOut(3000);
}
[/code]
document.form1.getelementbyname取得的是一个值,不是一个数组,不需要循环,如果要返回数组,可以用document.form1.elements