innerHTML在firefox中无法正常工作?

时间:2015-01-12 09:43:08

标签: javascript jquery html innerhtml

我正在使用javascript设置表单字段的值。现在,当我使用innerHTML选择该字段的HTML内容时,该值将消失。 这是代码。



function test() {
  document.getElementById("fname").value = "Deepak";
}

function test2() {
  alert(document.getElementById("testform").innerHTML);
}

<form id="testform">
  <input type="text" name="fname" id="fname">
</form>
<input type="button" value="Set Value" onclick="test()">
<input type="button" value="Show Inner HTML" onclick="test2()">
&#13;
&#13;
&#13;

我不能在这里使用jquery,所以必须只使用JS。 输出应为<input name="fname" id="fname" type="text" value="Deepak"> 但目前显示为<input name="fname" id="fname" type="text">

解决此问题的任何解决方法?这在IE上运行良好。

1 个答案:

答案 0 :(得分:1)

您在FireFox中观察到的行为是正确的行为。更改输入的值不应更改其value属性(如果它还有一个)。较新版本的IE的行为与FireFox的行为相同,旧版本的IE会出现代码所依赖的错误。您可以在DOM level 2 spec

中看到这一点
  

更改[value属性]会更改窗体控件的内容,但不会更改元素的HTML值属性的值。

如果我没有弄错,你应该能够将DOM节点直接传递给Modalbox.show()

Modalbox.show(document.getElementById('RAForm'), {title: 'Create RA', width:700});

所以请试试。我认为应该解决你的问题。