2017-07-14 9 views
0

2つの入力と送信ボタンで非常に単純な登録フォームを作成しています。
私が抱えている問題は、if文が1つしか完了しないことです。jQueryフォームの検証で苦労しています

$("#usernameError").hide(); 
$("#passwordError").hide(); 

$("#registrationSubmit").click(function(){ 

    if($("#username").val() == ""){ 

    $("#usernameError").show(); 
    return false; 
    } 

    if($("#passwordReg").val() == ""){ 

    $("#passwordError").show(); 
    return false; 
    } 
}); 

そしてここでは、ブートストラップを使用して、HTMLである::

<div class="modal fade" id="add-admin-modal"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header admin"> 
     Please Enter Details 
     </div> 
     <div class="modal-body admin"> 
     <form id="registrationForm" action="registerAction.php" method="post"> 
      <div class="form-group"> 
      <label for="">Username</label> 
      <input name="username" type="username" class="form-control" id="username" aria-describedby="emailHelp" placeholder="Enter Username"> 
      <div id="usernameError" class="alert alert-danger pad" role="alert">A Username is required!</div> 
      </div> 
      <div class="form-group"> 
      <label for="password">Password</label> 
      <input name="password" type="password" class="form-control" id="passwordReg" placeholder="Password"> 
      <div id="passwordError" class="alert alert-danger pad" role="alert">A Password is required!</div> 
      </div> 

      <div class="form-group"> 
      <button type="submit" id="registrationSubmit" name="registrationSubmit" class="btn btn-success">Ok</button> 
      <button class="btn btn-default" data-dismiss="modal">Cancel</button> 
      </div> 
     </form> 
     </div> 
    </div> 
    </div> 
</div> 
<script src="validations.js"></script> 

スクリプトがユーザー名を検証し、エラーを示すが、何もしないだろう。ここ

は私が作ったjQueryのですパスワードを入力します。

投稿するフォームを防ぐためにreturn falseを使用していますか?
代わりに何を使用できますか?

+0

私はあなたが返品を削除することを示唆した理由を受け入れない理由はありません...このコードは正常に動作します。 'return false;には問題ありません。この[** CodePen **](https://codepen.io/Bes7weB/pen/vZPrjx?editors=1011)を参照してください。ここではデモがCodepen上にあるため、送信を妨げるだけです。 ---エラーメッセージを取り除くために、それらの 'if'に' else'パーツを提案します...それが唯一のことです。 ---実際には、リターンを削除すると、検証効果もなくなります。空のフィールドがあっても、フォームは送信されます。 –

+0

両方の入力を空にしてフォームを送信すると、両方ともユーザー名エラーが表示されます。私が持っていた問題は、両方を表示する必要がある場合、両方を表示していました。 –

+0

jQuery Validateプラグインに関するご質問はまったくありません。タグ付けする際にはさらに注意してください。編集されました。 – Sparky

答えて

1

はい、その理由は、return文を削除するためです。ブール変数errorOccurredを使用して、エラーがあった場合はtrueに設定できます。エラーが発生した場合、データをポストしないポスト関数があります。

+0

ありがとう!それを解決し、errorOccuredがtrueに設定されている場合はfalseを返します。私は最初に問題のスタックを使用していました(数週間しかコーディングされていません)、もう一度やります!再度、感謝します! –

+0

問題ありません。解決したら回答を受け入れてください。 –

0

コードから戻ってきます。

var ValidationFailed = false; 

if($("#username").val() == ""){ 

    $("#usernameError").show(); 
    ValidationFailed = true; 
} 

if($("#passwordReg").val() == ""){ 

    $("#passwordError").show(); 
    ValidationFailed = true; 

} 
//..... 

return ValidationFailed;