Javascript 在Chrome VS IE9中设置HTML文本输入字段的默认值

Javascript 在Chrome VS IE9中设置HTML文本输入字段的默认值,javascript,google-chrome,browser,internet-explorer-9,Javascript,Google Chrome,Browser,Internet Explorer 9,如果我有以下HTML <input type="text" name="Text1" value="MyText" id="Text1"/> 它设置了输入字段的默认值。根据浏览器的不同,我会得到两种不同的反应。 在IE9中,值没有改变,但是默认值改变了,这实际上是预期的行为。 在Chrome(和Firefox)中,值和默认值都会更改。为什么? 但是如果我运行这个JavaScript var text = document.getElementById("Text1"); t

如果我有以下HTML

    <input type="text" name="Text1" value="MyText" id="Text1"/>
它设置了输入字段的默认值。根据浏览器的不同,我会得到两种不同的反应。 在IE9中,值没有改变,但是默认值改变了,这实际上是预期的行为。 在Chrome(和Firefox)中,值和默认值都会更改。为什么? 但是如果我运行这个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中更改


关于为什么以及如何让Chrome(和Firefox)像IE9那样运行,你有什么想法吗?

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

关于为什么以及如何让Chrome(和Firefox)像IE9那样运行,有什么想法吗?--首先是堆栈溢出?你不是自己回答的吗?循环遍历所有文本字段并执行a=a操作。你说它会像预期的那样工作。
var text = document.getElementById("Text1");
text.value = text.value; // No functional change, however triggers something in the DOM
text.defaultValue = "i am default value";