我用以下代码行填写html表
Javascript:
var newTR = document.createElement("TR");
var newTD;
newTD = document.createElement("TD");
newTD.width = "22%"
newTD.innerHTML = "<input type='text' name='AppOrderTxt1' readOnly='true'"+
"' id='AppOrderTxt' value=' test' class='text-noborders' onFocus='this.blur()' size='3'/>";
newTR.appendChild(newTD);
if(document.all){
tblRCRPCombo.children[0].appendChild(newTR);
}else{
tblRCRPCombo.insertRow(tblRCRPCombo.rows.length);
tblRCRPCombo.rows[tblRCRPCombo.rows.length-1].innerHTML=newTR.innerHTML;
}
当我尝试按名称AppOrderTxt1
获取请求参数值时,它会在FireFox中返回null
,而在IE中也是如此。
答案 0 :(得分:2)
可能不是问题,但你有一个额外的'
:
newTD.innerHTML = "<input type='text' name='AppOrderTxt1' readOnly='true'"+
" id='AppOrderTxt' value=' test' class='text-noborders' onFocus='this.blur()' size='3'/>";
此外,第一个if语句在firefox中工作,但firefox不会因为(document.all)而输入。如果你只有这一行...
tblRCRPCombo.children[0].appendChild(newTR);
...而不是整个if else语句,那么它将在FF和IE中工作。
原因如下:https://developer.mozilla.org/en/Mozilla_Web_Developer_FAQ
某些专有文档对象,例如document.all和 document.layers不是W3C DOM的一部分,不受支持 Mozilla的。 (对document.all有部分不可检测的支持, 但是,在较新版本的Mozilla中。但是,仅限该功能 存在与专门为IE创作的网站兼容。您 不应该依赖Mozilla的document.all支持新页面。) 可以使用 document.getElementById()方法。
答案 1 :(得分:-1)
将innerHTML
替换为textContent
:
tblRCRPCombo.rows[tblRCRPCombo.rows.length-1].textContent = newTR.textContent;