密码验证后发送数据

时间:2017-03-13 05:49:33

标签: javascript jquery ajax validation

我有一个表单将用户插入数据库。另一方面,我有两个密码验证脚本和一个检索php结果的ajax脚本。

现在这两个脚本分开工作。

我应该怎么做才能在密码验证后运行ajax脚本?

密码验证

 function Validate() {
        var password = document.getElementById("UserPwd").value;
        var confirmPassword = document.getElementById("ConfirmUserPwd").value;
        if (password != confirmPassword) {
            alert("Please enter the same password");
            return false;
        }
        return true;
    }

脚本

  $.ajax({
      url: "insert_sp.php",
      method: "POST",
      data: {submit: 'true'},
      success: function(response) {

        var data = JSON && JSON.parse(response) || $.parseJSON(response);
        alert(data);
    }
});

更新

isset:if(isset($_POST['Submit']))

按钮:<input type="submit" name="Submit" value="Submit"/>

$(function() {
  $("#myForm").on("sumbit", function(e) {
    e.preventDefault(); 
    var password = $("#UserPwd").val(),
      confirmPassword = $("#ConfirmPassword").val(); 
    if ($.trim(password) === password && 
        password !== "" &&               
        password === confirmPassword) { 
      $.ajax({
        url: "insert_sp.php",
        method: "POST",
        data: {
          submit: 'true' 
        },
        success: function(response) {
          var data = JSON && JSON.parse(response) || $.parseJSON(response);
          alert(data);
        }
      });
    }
    else {
      alert("Please enter the same password");
    }
  });
});

2 个答案:

答案 0 :(得分:2)

  1. 永远不要在表单中调用任何“提交”。如果需要,它将隐藏提交事件。

  2. 使用表单的提交事件和event.preventDefault而不是提交按钮单击事件

  3. 如果你有jQuery,为什么不一直使用它?

  4. 在插入

  5. 之前,请记住在服务器上进行完全相同的验证

    我无法让您成为正在运行的代码段,因为SO不允许在其网页中提交。这是代码 - 它应该按设计工作

    $(function() {
      $("#myForm").on("submit", function(e) {
        e.preventDefault(); // cancel form submission
        var password = $("#UserPwd").val(),
          confirmPassword = $("#ConfirmPassword").val();
        console.log(password,confirmPassword)  
        if ($.trim(password) === password && // spaces?
          password !== "" && // empty?
          password === confirmPassword) { // the same?
          $.ajax({
            url: "insert_sp.php",
            method: "POST",
            data: {
              Submit: 'true' // remember to change the $_POST test too
            },
            success: function(response) {
              var data = $.parseJSON(response);
              console.log(data);
            }
          });
        } else {
          alert("Please enter the same password");
        }
      });
    });
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <form id="myForm">
      <input type="password" value="" id="UserPwd" /><br/>
      <input type="password" value="" id="ConfirmPassword" /><br/>
      <input type="submit" name="Submit" value="Submit" />
    </form>
    

答案 1 :(得分:0)

如果成功,请在密码验证后另外调用ajax请求,然后调用下面的ajax函数。

function ajax_request(){
$.ajax({
url: "insert_sp.php",
method: "POST",
data: {submit: 'true'},    
success: function(response) {
var data=JSON&&JSON.parse(response)||$.parseJSON(response);
alert(data);
console.log(data);
}
});

function Validate() {
var password = document.getElementById("UserPwd").value;
var confirmPassword = document.getElementById("ConfirmPassword").value;
if (password == confirmPassword) {
ajax_request();            
}else{
alert("Wrong Password");
return false;
}
}