在Chrome VS IE9中设置HTML文本输入字段的defaultValue

时间:2013-08-14 12:33:31

标签: javascript google-chrome browser internet-explorer-9

如果我有以下HTML

    <input type="text" name="Text1" value="MyText" id="Text1"/>

如果我在页面后运行以下javascript代码

var text = document.getElementById("Text1");
text.defaultValue = "i am default value";

设置输入字段的defaultValue我根据浏览器得到两个不同的反应。 在IE9中,值不会更改,但会更改默认值,这实际上是预期的行为。 在Chrome(和Firefox)中,值和defaultValue都会更改。为什么? 但是如果我运行这个JavaScript

var text = document.getElementById("Text1");
text.value = text.value; // No functional change, however triggers something in the DOM
text.defaultValue = "i am default value";

然后它按预期工作,也就是说只有在Chrome中更改的defaultValue

关于为什么以及如何让Chrome(和Firefox)像IE9一样运行的任何想法?

1 个答案:

答案 0 :(得分:0)

defaultValue通常是元素的值,直到用户与该元素进行交互。用户与元素交互后,value属性在defaultValue属性更改时不会更改。在用户交互之前更改的defaultValue属性时,大多数浏览器将更新该元素的value属性。这种行为在浏览器中可能不一致。