javascript setAttribute("name",newname)不改变textbox&

javascript setAttribute("name",newname) not change textbox's name it create submitName

本文关键字:quot 改变 textbox newname name setAttribute javascript      更新时间:2023-09-26

我使用这个函数在表

中创建一个新行
   function addRow(obj) 
    {
            var table = document.getElementById("table2");
            var rowCount = table.rows.length-1;
            var row = table.insertRow(rowCount);
            var nowrownum = table.rows.length-1;        
            var colCount = table.rows[2].cells.length;
            for(var i=0; i<colCount; i++) {
                var newcell = row.insertCell(i);
                newcell.innerHTML = table.rows[2].cells[i].innerHTML;
                newcell.style.cssText = table.rows[2].cells[i].style.cssText;
//Here is problem
                newcell.childNodes[0].setAttribute("name",table.rows[2].cells[i].childNodes[0].getAttribute("name")+nowrownum);
//End here                 
                newcell.childNodes[0].id    = table.rows[2].cells[i].childNodes[0].id+nowrownum;
                switch(newcell.childNodes[0].type)  
                {
                    case "text":
                            newcell.childNodes[0].value = "";
                            break;
                }
            }
            obj.style.visibility = "hidden"; //to hide current button
    }

这是我的html代码

  <form name=form id=form  method=POST target="frametemp">
    <table name ="table2" id="table2" border="1"  align="Center">
     <tr>
         <th>Head1</th>
         <th>Head2</th>
         <th>Head3</th>
         <th>Head4</th>
     </tr>
     <tr>
         <td>xxxxx</td>
         <td><input type="text" id="edit_0"   name="edit_0" ></td>
         <td>yyyy</td>
         <td><input id="add_bt_0" onclick="JavaScript : addRow(this);" name="add_bt_0" value="addrow" type="button" ></td>
     </tr>
我从ie开发人员工具 中检查页面。
<td><input type="text" id="edit_1"   name="edit_0" submitName="edit_1" ></td>
<td><input id="add_bt_1" onclick="JavaScript : addRow(this);" name="add_bt_0" submitName="add_bt_1" value="addrow" type="button" ></td>

name属性不变,但它创建了submitName。

如何更改name属性。我的目标浏览器是ie7++(现在我使用ie9)

如何更改id…??使用相同的代码更改属性名称。我的意思是

newcell.childNodes[0].name = table.rows[2].cells[i].childNodes[0].name + nowrownum;

他们在IE8中修复了这个问题。在以前的版本中,在调用createElement时需要包含名称。从MSDN:

Internet Explorer 8及以后版本可以在运行时设置NAME属性使用IHTMLDocument2::createElement动态创建的元素方法。在早期版本中创建带有NAME属性的元素在Internet Explorer中,使用时包含该属性及其值IHTMLDocument2::createElement方法

下面是来自MSDN的示例:

var newRadioButton = document.createElement("<INPUT TYPE='RADIO' NAME='RADIOTEST'VALUE='First Choice'>")