JavaScript - 【注意】getAttribueのvalue値は初期値を返す

JavaScriptで入力ボックス等のフォーム部品の値を取得する場合、 getAttribute()メソッドの使用には注意してください。

getAttribute()でvalue値を取得すると、 現在の値ではなく、初期値を返します。

具体的に見ていきましょう。

HTML

テキスト入力ボックスを用意します。


<form>
	<input type="text" id="test" value="first" />
</form>

JavaScript

入力ボックスの値を、valueプロパティとgetAttribute('value')の2通りの方法で取得します。


var elem = document.getElementById('test');

console.log(elem.value); // first

console.log(elem.getAttribute('value')); // first

// value値を変更
elem.value = 'second';

console.log(elem.value);  // second

console.log(elem.getAttribute('value')); // first

「value値を変更後」の違いに注目してください。

「elem.value」は変更後の値('second')を返しますが、

「getAttribute('value')」は初期値('first')を返します。

変更後の値を取得したい場合は、valueプロパティを使わないと 思うような結果が得られません。

この点に注意してください。