如果我有以下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一样运行的任何想法?
答案 0 :(得分:0)
defaultValue
通常是元素的值,直到用户与该元素进行交互。用户与元素交互后,value
属性在defaultValue
属性更改时不会更改。在用户交互之前更改的defaultValue属性时,大多数浏览器将更新该元素的value属性。这种行为在浏览器中可能不一致。