javascript - 如何使用 javascript 提醒用户在表单验证中更正输入字段?

标签 javascript php jquery html forms

我有这个片段代码,它将在 span 中显示一些错误每当用户输入不正确的字段时标记。而不是使用 required ,当用户将其留空时,我希望我的提交表单能够验证并显示 alert消息说'Please check and input correct fields'提交之前。如果用户输入一些正确的数据,它将显示一条消息 '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;
  }
});

希望有帮助 =)

关于javascript - 如何使用 javascript 提醒用户在表单验证中更正输入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39163561/

相关文章:

javascript - 不同的响应式布局处理

PHP MySQL 查询

java - PHP 到 Java 迁移

javascript - AJAX 将数据发送到 PHP 文件,但 PHP 无法从 $_POST 获取数据

javascript - 动态地,在具有指定类名 (jQuery) 的每个元素(div、图像、跨度等)上添加重叠的 div

javascript - 需要使用javascript识别iOS编辑键盘中的 'Done'按钮点击

javascript - 在具有子输入元素的元素上使用jquery追加或删除会改变它们吗?

javascript - 在js中将<th>添加到表格中

javascript - 使用 React 功能组件作为类型

javascript - Struts2 jQuery 自动完成器不转义 ASCII