ajax请求 不同步,如何使JQuery-AJAX请求同步

如何使Ajax请求同步?

我有一个需要提交的表格。但是只有在用户输入正确的密码时才需要提交。

这是表单代码:

用于发送和检查密码的jQuery代码是这样的:

var ajaxSubmit = function(formE1) {

var password = $.trim($('#employee_password').val());

$.ajax({

type: "POST",

async: "false",

url: "checkpass.php",

data: "password="+password,

success: function(html) {

var arr=$.parseJSON(html);

if(arr == "Successful") {

return true;

} else {

return false;

}

}

});

}

但是,无论ajax请求返回的值如何,该表单始终提交。我检查了其他所有内容。输入正确的密码后,arr的值将显示为“成功”,反之亦然。

如何使此请求同步?据我可以调试,请求是异步的,因此在请求完成之前先提交表单。

checkpass.php的代码

require("includes/apptop.php");

require("classes/class_employee.php");

require("classes/class_employee_attendance.php");

$employee_password=$_POST['password'];

$m=new employee();

$m->setbyid_employee(1);

$arr=$m->editdisplay_employee();

if($arr['employee_password'] == $employee_password)

{

$res="Successful";

}

else

{

$res="Password not match";

}

echo $res;

?>

更新:已找到解决方案。

正如Olaf Dietshche指出的那样:的返回值ajaxSubmit不是的返回值success:

function(){...}。ajaxSubmit完全不返回任何值,该值等于undefined,其结果为true。

这就是为什么总是提交表单并且独立于是否同步发送请求的原因。

因此,我1在成功后将变量设置为成功函数内部。并从成功函数中检查了它的值,如果它1不在成功函数中,那么我写了return true ... else

return false。那行得通。

更新的工作代码:

var ajaxsubmit=function(forme1) {

var password = $.trim($('#employee_password').val());

var test="0";

$.ajax({

type: "POST",

url: "checkpass.php",

async: false,

data: "password="+password,

success: function(html) {

if(html == "Successful") {

test="1";

} else {

alert("Password incorrect. Please enter correct password.");

test="0";

}

}

});

if(test=="1") {

return true;

} else if(test=="0") {

return false;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值