代码如下,我添加一行以后,页面上能够显示添加出来的输入框,但是用getElementsByName就是取不到输入框中的值,
浏览器是IE8。求高手指点。//表格添加行的方法
function addtr(gcInvName,cInvStd,gcInvM_Unit)
{
var newTR = $('pltab').insertRow($('pltab').rows.length);
newTR.id = "pltr"+gpcInvAddCode;
var td1 = newTR.insertCell(0);
td1.innerHTML = gcInvName;
var td2 = newTR.insertCell(1);
td2.innerHTML = cInvStd;
var td3 = newTR.insertCell(2);
td3.innerHTML = gcInvM_Unit;
var td4 = newTR.insertCell(3);
var inputnum = document.createElement("input");
inputnum.type="text";
inputnum.name="cpnumlist";
inputnum.size="7";
inputnum.value="0";
inputnum.disabled=false;
td4.appendChild(inputnum);
}
function mysubmit()
{
        if(confirm("确认添加完毕?"))
        {
        var cpnumlist = document.getElementsByName('cpnumlist');
                //这个地方cpnumlist 的长度始终为1,后面就没法继续了
                //之后的代码是把所有名字是cpnumlist的数字连接成一个字符串提交
        }
}
function $(id)
{
        return document.getElementById(id);
}

解决方案 »

  1.   

    getElementsByName获取的不是一个元素,它查询的是元素的name属性,而不是id属性,换成getElementsById
      

  2.   

    本身就要得到多个值,用循环拼接成字符串提交的,问题解决了,直接把<inpu type="text"/>写到innerHTML里就能用getElementsByName读取了,只是不明白为什么用appendChild的方式却读取不到
      

  3.   


    因为,input  和  td 没有一点关系,input不是td的儿子。比如:td是tr的儿子,就可以用  tr.appendChild(td).