2008-10-24 51 views
0

我想动态地添加一些文本框(输入类型=文本)到JavaScript中的页面并预先填充它们。文本框即将出现,但它们正在空白。什么是预先填写文本框的正确方法。理想情况下,我很乐意使用创建子div的技巧,设置innerhtml属性,然后将该div添加到父级主div,但这不起作用。然后我想我会使用dom,但在插入之前或之后设置textboxname.value将不起作用,并且执行txttextbox.setattribute('value','somevalue')也不起作用。在Firefox中运行良好。是什么赋予了?这一定是可能的?这是我的代码。我知道我只使用字符串文字,但这些文字最终会被Web服务调用的结果所取代。以下是一些代码。哦,你如何格式化代码才能在打字时显示出来?我认为它说缩进四个空格,我这样做,但代码仍然在一行。对于那个很抱歉。在IE中预填充动态创建的文本框与JavaScript

var table=document.createElement('table'); 
var tbody=document.createElement('tbody'); 
var row=document.createElement('tr'); 
row.appendChild(document.createElement('td').appendChild(document.createTextNode('E-mail'))); 
var txtEmail=document.createElement('input'); 

row.appendChild(document.createElement('td').appendChild(txtEmail)); 
tbody.appendChild(row); 
table.appendChild(tbody); 

//document.getElementById('additionalEmails').innerHTML=""; 
document.getElementById('additionalEmails').appendChild(table); 

回答

4
txtEmail.value = 'my text' 

不起作用?

2

您还可以使用Prototype做到这一点很容易:

document.body.insert(new Element("input", { type: "text", size:20, value:'hello world' })) 
0

我遇到的问题与此类似,在过去,虽然我的记忆是为什么发生完全是一个有点模糊,我觉得您可能需要确保元素在修改其值之前实际添加到DOM。例如:

 

var txtEmail=document.createElement('input'); 

document.getElementById('someElementThatAlreadyExists').appendChild(txtEmail); 

txtEmail.value = 'sample text'; 
 
+0

我认为通过将它添加到正在添加到正被添加到正在被添加到当前div的表中的行的单元中,该表将被添加到文档中?我试图动态生成一个表,并且比预期要困难得多。 – 2008-10-24 15:04:25

0

我最终解决了这个问题,直接通过子div注入html页面。这确实有效,只是我是盲人,而我用来阅读屏幕的软件却没有看到文本框中的文本。去搞清楚。感谢原型上的提示,但如果我决定不直接将这些元素添加到dom中,我会这样做。