【问题标题】:jquery onSubmit() problems after returning data from php从php返回数据后jquery onSubmit()问题
【发布时间】:2017-06-17 08:13:06
【问题描述】:

我正在尝试使用 jQuery 和 php 来验证我的表单。我想要实现的是在后台将我的表单输入传递给 process.php,检查输入是否通过了我的验证代码,然后返回 true 或 false到我的 jQuery checkForm() 函数.. 到目前为止,下面的代码现在正在工作..

function checkForm() {
  jQuery.ajax({
    url: "process.php",
    data: {
      reguser: $("#reguser").val(),
      regpass: $("#regpass").val(),
      regpass2: $("#regpass2").val(),
      regemail: $("#regemail").val()
    },
    type: "POST",
    success: function(data) {}
  });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

<form action="register.php" method="post" onSubmit="return checkForm()">

【问题讨论】:

  • 您遇到的错误是什么?
  • 尝试在验证的提交处理程序中调用您的函数 checkForm()。
  • @GaurangSondagar .. 我实际上没有收到任何错误 .. 即使出现错误,页面也会提交到 register.php。
  • @Apoorva 页面仍然提交到 register.php 即使有错误..

标签: php jquery html forms validation


【解决方案1】:

在 php 中发送所有输入以验证所有数据。

function checkForm() {
  $.ajax({
    url : "process.php",
    type: "POST",
    data: $('#yourForm').serialize(),
    dataType: "JSON",
    success: function(data)
    {
      if(data.status)
      {
        alert("Success"); 
      }
      else
      {
        for (var i = 0; i < data.inputerror.length; i++) 
        {
          alert(data.inputerror[i] + "|" +  data.error_string[i]);
        }
      }
    }
  });
};

验证您通过 Ajax 发送的数据。

  public function process()
  {
    $this->_validate_all_data();
    echo json_encode(array("status" => true));
  }

  private function _validate_all_data()
  {
    $data = array();
    $data['error_string'] = array();
    $data['inputerror'] = array();
    $data['status'] = true;

    if(empty($POST['reguser']))
    {
      $data['inputerror'][] = 'reguser'; // input name
      $data['error_string'][] = 'Reguser is required'; // message for validation
      $data['status'] = false;
    }

    if($data['status'] === false)
    {
      echo json_encode($data);
      exit();
    }
  }

【讨论】:

  • 我不认为这是我想要的。我只想激活 onSubmit() 以防止表单在我的验证脚本 (process.php) 失败时被提交。我编写了我的 process.php 以返回真或假。我只需要使用该输出来使提交处于活动状态或处于非活动状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 2015-10-29
相关资源
最近更新 更多