この関数を考えてください:
function validate()
{
var acc = document.getElementsByName('acc').value;
var pass = document.getElementsByName('pass').value;
alert (acc);
}
そしてこのHTML部分:
<table border="0" cellpadding="2" cellspacing="0" valign="top">
<tr>
<td class="td1">Account</td>
<td class="td2"><input type="text" name="acc" /></td>
</tr>
<tr class="td1">
<td>Password</td>
<td class="td2"><input type="password" name="pass" /></td>
</tr>
</table>
<div><button onClick="validate()" class="cupid-greenx">Login now</button></div>
警告ボックスは表示されていますが、「未定義」と表示されています。
document.getElementsByName
は要素のNodeListを返すので、プロパティ.value
はありません。それゆえ、あなたが見ている未定義のエラーです。
欲しいのはdocument.getElementsByName("acc")[0].value
です
このメソッドの複数形に注意してください。
document.getElementsByName()
これは要素の配列を返すので、最初の出現を得るために[0]を使います。
document.getElementsByName()[0]
あなたはこれを求めている:
function validate() {
var acc = document.getElementsByName('acc')[0].value;
var pass = document.getElementsByName('pass')[0].value;
alert (acc);
}
document.getElementsByName("myInput")[0].value;
メソッドdocument.getElementsByNameは要素の配列を返します。たとえば、最初に選択する必要があります。
document.getElementsByName('acc')[0].value