これが私のフォームです。
<form method="post" name="frm" >
<label>Name*<input type="text" name="Name" value="<?php echo $r['Name'] ?>" onblur="if(this.value.length<3) alert('Name too short');" /></label>
<label>Username*<input type="text" name="UN" value="<?php echo $r['UN'] ?>" onblur="if(this.value.length<5) alert('Username too short');" /></label>
<label>Password*<input type="password" name="PW" onblur="validation()" /></label>
<label>Confirm Password*<input type="password" name="CM" onblur="validation()" /></label>
<?php } ?>
<input type="submit" name="Submit" value="<?php if($new) echo 'Register'; else echo 'Update'; ?>" />
</form>
個別の onblur イベントを記述せずに、これらすべてのイベントを validation() という関数に入れようとしています。これは、パスワードに対して行ったように、パスワード フィールドを確認するためです。これが検証関数です。
<script language="javascript">
function validation(){
var password= document.frm.PW.value;
var password2=document.frm.CM.value;
if (password.length<5){
alert ("Password too short");
}
else if(password!=password2){
alert("password mismatch");
}
}
</script>
しかし、このコードを使用すると、パスワードを入力し、確認パスワードフィールドの入力を開始しようとすると、メッセージが警告されます(「パスワードの不一致」)。これを取り除く方法。検証している場合はすべてのフォームタグvalidation() 関数を使用して、各タグで onblur=validation(); を呼び出す必要がありますか?