、これら2つの行を実行します。なぜそれが異なりなぜ、setAttribute経由で入力の値を設定するか、直接入力の値を設定するかの違いはありますか?デベロッパーツールで
1.
window.x = document.createElement("input");
x.type="text";
x.name="nm";
x.value="val";
x
// <input type="text" name="nm">
2.
window.x = document.createElement("input");
x.type="text";
x.name="nm";
x.setAttribute("value", "val");
x
// <input type="text" name="nm" value="val">
を印刷になるだろうか?どちらの場合でも値は適切に設定されているようです。プロパティとDOM属性の間に切断があるようです。
また、プロパティ.value
のゲッターは.getAttribute('value')
の結果とは異なります。私はsetAttribute()
一日中、.value
は古い値を返します。
(設定値は、直接値プロパティを使用して)。 value属性は、ロード時の値を設定します(フルストップ)。あなたは通常、単に 'value'を必要とします。これは入力の真の値です。これはマークアップには反映されませんが。 – Liam
多くの属性とDOMプロパティがマップされています。 'value'属性/プロパティには[より長いもの](https://www.w3.org/TR/html5/forms.html#value-sanitization-アルゴリズム)私が見た関係の仕様をマッピングします... –