0

次のHTMLがある場合

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

ページの後に次のJavaScriptコードを実行すると

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

これは、入力フィールドの defaultValue を設定します。ブラウザーに応じて 2 つの異なる反応が得られます。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 のように実行する理由と方法についてのアイデアはありますか?

4

1 に答える 1

0

defaultValueは通常、ユーザーがその要素を操作するまで、その要素の値です。ユーザーが要素を操作すると、プロパティが変更されvalueてもプロパティは変更されませんdefaultValueユーザー操作の前にdefaultValue プロパティが変更されると、ほとんどのブラウザは要素の value プロパティを更新します。この動作は、ブラウザ間で一貫していない場合があります。

于 2016-01-21T09:50:30.043 に答える