2

私がネットで見たすべてのことから、次のコードは次のことを行う必要があるようです (これは私の予想です)。

  • 電子メール (「援助」) が正規表現と一致しない場合、警告メッセージを表示して false を返します
  • パスワード (「pass」) が空白の場合、警告メッセージを表示して false を返す
  • 両方の条件が検証に合格した場合は、フォームを送信します

Javascript は次のとおりです。

function validate() {
var email = document.getElementById('aid').value;
var pass = document.getElementById('apw').value;        
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
if (!emailPattern.test(email)) {
    alert("Not a valid email address");
    return false;
}
if (pass == null || pass == "") {
    alert("Password is blank");
    return false;   
}
return true;
}

タグの開始は次のとおりです。

<form action="choose.php" onsubmit="validate();" method="post">

私が抱えている問題は、送信ボタンをクリックすると警告メッセージが表示されるのに、choose.php がブラウザーにロードされることです。エラー条件がトリガーされた場合、両方の条件が渡されるまでスクリプトをページに残す必要があります。

4

1 に答える 1

4

onSubmit を に変更する必要がありますonSubmit="return validate();"。このように false を返すと、フォームは送信されません。現在、validate() 関数を呼び出すだけで、フォームの送信が続行されます。

于 2012-11-28T00:03:49.777 に答える