即使表单为假,也会触发ajax成功

时间:2019-03-13 22:06:27

标签: javascript jquery ajax

我无法弄清楚,我有一个由ajax提交的表单,即使表单值不符合要求,ajax代码也总是返回false。 此外,当表单正确时,在表单操作php文件中应该发生的功能也没有发生,因此无论我是否填写必填字段,或者如果我填写对与错,Ajax都将其称为成功, php操作将不起作用{即使格式正确!}

表格:

<form method="POST" onsubmit="return loginSubmit(this)">
<input type="text" name="username" placeholder="username"></br>
<input type="password" name="password" placeholder="password"></br>
<button type="submit" name="submit">login</button>
</form>

功能:

function loginSubmit(element){
  var values = $(element).serialize();
  $.ajax({
    type: 'post',
    url: 'assets/login.inc.php',
    data: values,
    success: function(data){
      alert('success');
    }
  });   
  return false;
}

表单操作{php}:

这很长,我不希望这篇文章看起来像是一团糟,所以我只是在写我从表单中提取数据的方式,当我不使用ajax提交表单时,php代码就可以正常工作。

$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);

2 个答案:

答案 0 :(得分:-1)

jQuery success回调没有实现您认为的那样。如果HTTP调用成功并收到正常的“ OK”响应,则会触发该事件。

您需要在回调中解析data参数,以确定您的PHP代码返回了什么。

来自jQuery文档中的“ Ajax”方法调用:

  

如果请求成功,将调用的函数。该函数将传递三个参数:服务器返回的数据,根据dataType参数或dataFilter回调函数(如果已指定)进行格式化;描述状态的字符串;和jqXHR对象(在jQuery 1.4.x中为XMLHttpRequest)。   参考:http://api.jquery.com/jquery.ajax/

答案 1 :(得分:-2)

好吧,我知道了,在php文件中,我检查了表单是否已提交,如果通过槽ajax提交,似乎不正确。谢谢