<script type="text/javascript">
var geid = function(x) {
var element = document.getElementById(x);
return element;
}
function submitForm(){
var password = geid('password').value;
var passwordConfirm = geid('passwordConfirm');
//THIS IS OF HIGH IMPORTANCE THAT THIS CONFIRM PASSWORD MATCHES
//WILL NEED TO VALIDATE IT IN THE PHP AS WELL>
else if (password == ""){
registerMessage.innerHTML = "Please enter your Password.";
return false;
}
else if (passwordConfirm == "") {
registerMessage.innerHTML = "Please confirm your password.";
return false;
}
else if (passwordConfirm != password) {
registerMessage.innerHTML = "Your passwords don't match.";
return false;
}
else {
registerMessage.innerHTML = "Taking you to your profile, please wait a moment...";
document.forms['registerform'].submit();
}
}
<form method="post" action="register.php" id="registerform" onsubmit="return submitForm()">
<label for="password" class="registerLabel">Password</label>
<input type="password" name="password" id="password" class="registerText" /> <br />
<label for="passwordConfirm" class="registerLabel">Confirm Password</label>
<input type="password" name="passwordConfirm" id="passwordConfirm" class="registerText" /> <br />
<div class="submitMessage">
<input type="submit" id="submit" name="submit" value="Register" class="registerButton cleangray" /><br />
<div id="registerMessage"><?php echo $error ?></div>
</div>
<div class="clear"></div>
</form>
答えて
else if
で始めることはできません。あなたが実行しているとちょうど標準提出するメカニズムを使用してフォームを送信からあなた検証コードのいずれかを防止することだif
if (password == ""){
registerMessage.innerHTML = "Please enter your Password.";
return false;
}
で開始する必要があります。
これは、検証にアプローチする最善の方法でもありません。それぞれのエラーに戻るのではなく、一連のメッセージをまとめて、すべてを一度に報告することができます。そうすれば、ユーザは間違ったことをすべて知っているでしょう。—あなたの現在のメソッドは1つのメッセージしか設定しません。
具体的に言えば、この解析エラーは関数の実行を妨げ、 'return false'が呼び出されません。しかし、この仕組みはJavascriptに結合されていないため、依然としてフォーム提出が進められます。 –
@Tomalak Geret'kal:あなたはそのコメントを書いていたので、私の答えを更新していました:) – Town
Meh @ iterative answering! –
JavaScriptでエラーが発生したため、else if
を使用しています(if
は最初に定義されていません)。このエラーのため、すべてのJavaScriptコードが失敗します。あなたのコードをHTMLにところでデモhttp://jsfiddle.net/Zs3km/
作業
if (password == ""){
へ
変更
else if (password == ""){
はちょうどここにそのあなたのミスであれば必ず、<script>
タグ内にありません。 <form>
タグを開く前に、<script>
タグを閉じる必要があります。
- 1. 送信ボタンの名前が「送信」のときにフォームが送信されないのはなぜですか?
- 2. 送信ボタンで送信しないフォーム
- 3. Ajaxフォーム送信ボタン付きで送信
- 4. 送信ボタンでフォームを送信
- 5. フォームの送信ボタンの値を送信していますか?
- 6. HTMLフォームのボタンでデータが送信されるのはなぜですか?
- 7. フォームを送信すると、クリックされたボタンも表示されますか?
- 8. なぜ型のボタンが送信されますか?
- 9. 送信ボタンをクリックすると$ _GET変数が送信されます
- 10. JavaScriptを使用して手動でフォームを送信しても、送信ボタンは送信されません。
- 11. HTMLフォーム送信ボタンのチェック
- 12. フォーム送信ボタンのPHPスクリプト
- 13. 送信ボタンをクリックしたときに送信するフォームを取得する
- 14. 送信ボタンを使用せずにリンクをクリックしてフォームを送信する
- 15. 入力キーでフォームを送信する/送信ボタン
- 16. フォーム、投稿、送信ボタン
- 17. フォーム送信せずにボタン
- 18. IE上でajaxフォームを送信した後にJQueryボタンがクリックされない
- 19. 送信時にフォームでthis.valのみを送信しますか?
- 20. HTMLフォームで送信ボタンがない場合は(入力で)送信できないのは本当ですか?
- 21. フォーム送信時に送信ボタンを無効にする問題
- 22. ボタンを(送信するのではなく)ボタンに設定しても、ボタンがフォームを送信するのはなぜですか?
- 23. PHPフォームの送信ボタンもアンカーになることはできますか?
- 24. JQuery:送信ボタンを押さなくてもデータを送信できますか?
- 25. htmlフォームは送信されません
- 26. このフォームを手動で送信できないのはなぜですか?
- 27. フォーム送信ボタン@透明なCSSスプライト
- 28. は、フォーム送信
- 29. jQuery Mobileで送信ボタンがオーバーレイ表示されるのはなぜですか?
- 30. ボタンでフォームを送信する
これを良い質問にするには、フォームを提出しないと考える理由を説明する必要があります。 **コードダンプは質問ではありません** –