我正在使用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;
我不能在这里使用jquery,所以必须只使用JS。
输出应为<input name="fname" id="fname" type="text" value="Deepak">
但目前显示为<input name="fname" id="fname" type="text">
解决此问题的任何解决方法?这在IE上运行良好。
答案 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});
所以请试试。我认为应该解决你的问题。