FF,Chrome中的innerHTML问题。 IE很好

时间:2011-06-09 15:44:47

标签: firefox google-chrome internet-explorer-8 innerhtml

我有一个页面,按下按钮时动态加载输入。 按下按钮时,我将源代码添加到容器元素的innerHTML中。

所以如果按下它就会包含它。 如果再次按下它,它将添加第二个,名称为“inp-2”。

问题是,如果你添加一个输入,你用一些文本填充它,然后你再次按下添加按钮,插入的文本将消失,因为 - 至少我是这么认为 - 它保留了原始的innerHTML,不包含插入的文本。这种情况发生在FF,Chrome中。在IE中它工作正常,因为IE的innerHTML由用户的交互性更新;如果您填写输入然后查看源代码,那么您将看到您的文本位于输入的值属性中,而不是像FF或Chrome中那样。

您有什么建议,如何以最快捷有效的方式解决这个问题?请记住,我已将代码简化为单个输入,但每次按下按钮时,都会向innerHTML添加一个巨大的源代码(1个表包含trs,tds,大约9个输入和文本)。感谢

1 个答案:

答案 0 :(得分:0)

如果要继续使用.innerHTML,而不是实际附加节点的DOM方法,则需要向这些输入添加“更改”事件处理程序。浏览器不需要同步value属性和value的{​​{1}}属性,但您的事件处理程序可以跨浏览器方式执行此操作。

尝试这样的事情。每次更新属性时都应更新innerHTML。

<input/>