javascript - 即使表单为假,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']);
解决方案
jQuerysuccess
回调不会做你认为它做的事情。如果 HTTP 调用成功并收到正常的“OK”响应,则会触发它。
您需要解析data
回调中的参数以确定您的 PHP 代码返回的内容。
从“Ajax”方法调用的 jQuery 文档中:
请求成功时调用的函数。该函数获得三个参数: 从服务器返回的数据,根据
dataType
参数或dataFilter
回调函数(如果指定)格式化;描述状态的字符串;和 jqXHR(在 jQuery 1.4.x 中,XMLHttpRequest)对象。参考:http ://api.jquery.com/jquery.ajax/
推荐阅读
- linux - 将环境变量传递给嵌套的子级
- vba - Word Vba 打印大量文件时出现问题
- ios - largeTitleDisplayMode 不能正常工作?
- logging - Rsyslog - 日志未显示在服务器上
- string - perl 从文件中删除字符串块并保存到文件
- node.js - RS-232c Digi 秤没有发送任何数据
- maven - 目标 org.apache.maven.plugins:maven-dependency-plugin:3.0.0:analyze-only 的执行分析失败:此功能需要 ASM7
- excel - 创建动态 CheckBox 变量
- batch-file - 如何创建批处理文件以在文本文件中输入数据
- r - 从另一个列表中删除特定值的列表