OKユーザーがユーザー名フィールドにユーザー名を入力したかどうかを確認するフォームがあります。さらに、どのボタンをクリックしたのかを知りたいのですが、実際にはログアウトボタンがクリックされたときに見たいと思っています。フォームが送信されたときにaddEventListenerが 'クリック'値を登録していないようです。 buttons
とは、Firefoxデバッガで実行すると正しい値を持っています。だから私の質問は、どのように私はaddEventListenerの値をチェックするか、その渡されているか?私が間違っていることについてのいくつかの洞察を探しています。検証フォーム。 addEventListenerがリッスンしない
<!DOCTYPE html>
<html>
<head>
<title>Not empty</title>
</head>
<body>
<script>
function ValidateForm(frm){
var buttons = document.getElementsByName('adam');
var buttonsLength = buttons.length;
for (var i = 0; i < buttonsLength; i++){
buttons[i].addEventListener('click', clickResponse, false);
};
function clickResponse(){
if(this.id == "logout"){
alert(this.id);
}else {
alert("not logout:" + this.id);
};
};
if (!frm.UserName.value) {
alert("You must enter your username.");
frm.UserName.focus();
return false;
}
return true;
}
</script>
<form method="post" action="test.html" onsubmit="return ValidateForm(this)">
<input type="input" name="UserName" value="">
<input type="password" name="Password" value="">
<button name="adam" id="login">login</button>
<button name="adam" id="sendMe">send me my password</button>
<button name="adam" id="logout">logout</button>
<form>
</body>
あなたはJSのユーザー名に大文字がありますが、htmlではありません。もう1つの問題は、ボタンをクリックするたびに関数の新しいインスタンスを割り当てることです。 –
申し訳ありませんが、コピーして貼り付けることに失敗しました。 – poohbear