簡體   English   中英

如何在使用JavaScript的表單驗證中提醒用戶糾正輸入字段?

[英]How to alert user to correct input fields in form validation using javascript?

我有此代碼段代碼,每當用戶輸入不正確的字段時,該代碼都會在span標記中顯示一些錯誤。 當用戶將其保留為空時,我希望我的提交表單可以驗證並顯示一條alert消息,提示'Please check and input correct fields'然后再提交,而不是使用required 如果用戶輸入正確的數據,它將顯示一條消息'Form Ok' 有什么適當的方法執行此操作嗎? 傳遞函數onsubmit="return validateForm();"

請幫忙。

 function validateForm() { //Prompts the to correct all fields. How?? } //Checks password function function checkPasswordMatch() { var password = $("#createpassword").val(); var confirmPassword = $("#confirmpassword").val(); if ((password && confirmPassword) == "") { $("#divCheckPasswordMatch").html(""); } else if (password != confirmPassword) { $("#divCheckPasswordMatch").html("Password do not match!"); $("#divCheckPasswordMatch").css("color", "red"); } else { $("#divCheckPasswordMatch").html("Password match."); $("#divCheckPasswordMatch").css("color", "green"); } } //trigger keyup event in function checkPasswordMatch $(document).ready(function() { $("#createpassword, #confirmpassword").keyup(checkPasswordMatch); }); //Add an Email Regular Expression and pass it to function validate function validateEmail(email) { var re = /^(([^<>()[\\]\\\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\"]+)*)|(\\".+\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/; return re.test(email); } //Email Validate function function validate() { var email = $("#email").val(); if (validateEmail(email)) { $("#checkEmail").text(""); } else { $("#checkEmail").text("Please enter a valid email address"); $("#checkEmail").css("color", "red"); } } //Call the function validate in blur event Jquery $(document).ready(function(){ $("#email").blur(validate); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <!DOCTYPE html> <html> <body> <form action="SignupProcess.php" method="POST" onsubmit="return validateForm();" id="signupform"> <fieldset> <!-- Email Address field --> <div class="form-group"> <input class="form-control" placeholder="Email" name="email" id="email" type="email" required> <span id="checkEmail"></span> </div> <!-- Password input button --> <div class="form-group"> <input class="form-control" placeholder="Create Password" name="createpassword" oninvalid="setCustomValidity('Please enter a password')" oninput="setCustomValidity('')" id="createpassword" type="password" required> </div> <!-- Confirm password input button --> <div class="form-group"> <input class="form-control" placeholder="Confirm Password" name="confirmpassword" oninvalid="setCustomValidity('Please match your password')" oninput="setCustomValidity('')" id="confirmpassword" type="password" required> <span class="registrationFormAlert" id="divCheckPasswordMatch"></span> </div> <!-- Submit input button --> <div class="form-group"> <input type="submit" id="signup" name="signupsubmit" class="btn btn-info form-control" value="Register"> </div> </fieldset> </form> </body> </html> 

嘗試刪除表單中的onsubmit ,並使用以下代碼替換它:

$('input[type="submit"]').click(function(e){
  //validate form
  var condition = validateForm(); //return true or false
  if(condition){
    alert('Form OK!');
  }
  //stop submission
  else{
    alert('Please check and input correct fields!');
    e.preventDefault();
    return false;
  }
});

希望對您有幫助=)

我不是一個好的編碼員,但是也許可以。

您唯一需要做的就是在enail驗證時切換if else語句,因此錯誤的操作是,就像在進行密碼檢查一樣。

希望它有所幫助

if(checkPasswordMatch() && validate() == 0 ){
// custom alert here;
}

這樣的事情會有所幫助

    function validateForm() {
    var email = document.getElementById("email");
       if (email == null || email == "") {
         alert("email must be filled out");
         return false;
       }
   }

如果您有多個輸入字段的ID電子郵件,則將atrribute名稱添加到表單中,即可執行此操作

   function validateForm() {
      var email = document.forms["reqForm"]["email"].value;
    if (email == null || email == "") {
       alert("email must be filled out");
     return false;
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM