当前位置:首页 > 网页设计 >Javascript >
发布时间:2018-02-02 12:49:11 作者:佚名 阅读:(243)
问题原因:
1. ajax时return false 的function与onsubmit()不是同一个函数;
2. 在ajax执行时,async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程)。
原因:逻辑没弄清楚,要将ajax设置为同步的,需要使用$.ajax,$.get默认是异步的,并且不是在回调函数内return,而是在checkForm函数外声明一个变量来接受回调函数的返回值,然后checkForm返回这个值。
var chaxun = false; function checkForm() { var oid = document.login.oid.value; var _checks = '0'; if (oid == "" || !$.IsNumber(oid)) { tips_box('订单号不正确,请仔细3阅读订单查询教程!'); document.login.oid.focus(); return false; } else { var check_order = "/sm/bzsm/checkOrder.html"; $.ajax({ async: false, url: check_order, data: { order_id: oid, }, //参数值 type: "POST", //请求方式 success: function (req) { var req = eval('(' + req + ')'); if (req.code == '2') { tips_box('订单号不正确,请仔细阅读订单查询教程!'); document.login.oid.focus(); return false; } else { chaxun = true return false; } }, }); } if (!chaxun) { return false; } }
欢迎分享转载→ ajax提交表单为什么return false却依然提交
© 2015-2021 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们