jquery ajax 同步查询
2015-11-25 15:23
661 查看
最近有个需求,需要页面再提交前校验该页面下面的订单号码是不是符合条件。需要调用Ajax接口去查询。于是我就写了一个Ajax调用的方法去查询。代码如下:
后来我发现,在走到了这个判断方法的时候
我发现这应该是一个Ajax同步的问题,后来把代码做了下面的改动:
增加了上面代码中红色的部分,把Ajax设置成同步的。这样在进行if判断的时候会等待Ajax执行完毕才会继续往下走。
function isOrdIdHasCargoIns(ordId){ //返回的结果如果是true,提交流程中止。返回结果为false,提交流程继续 var result = false; $.get("/cargoInsurance/checkOrderHasCargoIns.do",{ ordId : ordId },function(data,textStatus){ if(data.succeed){ //如果订单下已经有货运险信息,提交流程结束,不提交 if(data.alreadHasCargoIns){ result = true; }else{ result = false; } }else{ //因为后台报错,提交流程暂时停止,一般情况下不会出现这种情况 alert(data.message); result = true; } },"json"); return result; }然后在onSubmit()方法中调用它进行是否提交的判断,如下部分代码:
function doSubmit(status){ var ordId = $("#ordId").val(); if(ordId==""){ alert("请选择订单!"); return false; } <span style="color:#ff0000;">if(isOrdIdHasCargoIns(ordId)){ //如果订单下已经有货运险,不提交保存 alert("该订单已经存在货运险信息!! "); return false; }</span>但是我在进行测试的时候出了一个奇怪的问题:明明订单不符合要求,后台该接口的debug日志也显示该订单不符合要求,但是页面并没有中止表单提交。
后来我发现,在走到了这个判断方法的时候
<span style="color:#ff0000;">if(isOrdIdHasCargoIns(ordId))</span>,不会等待,直接往后面走,但是Ajax调用此刻还没有结束。
我发现这应该是一个Ajax同步的问题,后来把代码做了下面的改动:
function isOrdIdHasCargoIns(ordId){ //返回的结果如果是true,提交流程中止。返回结果为false,提交流程继续 var result = false; <span style="color:#ff0000;">$.ajaxSetup({ async : false });</span> $.get("/cargoInsurance/checkOrderHasCargoIns.do",{ ordId : ordId },function(data,textStatus){ if(data.succeed){ //如果订单下已经有货运险信息,提交流程结束,不提交 if(data.alreadHasCargoIns){ result = true; }else{ result = false; } }else{ //因为后台报错,提交流程暂时停止,一般情况下不会出现这种情况 alert(data.message); result = true; } },"json"); return result; }
增加了上面代码中红色的部分,把Ajax设置成同步的。这样在进行if判断的时候会等待Ajax执行完毕才会继续往下走。
相关文章推荐
- jQuery Ajax 实例 全解析
- jquery动画
- jQuery 事件
- jquery插件下载地址
- jQuery 选择同时包含两个class的元素
- jquery之ajax请求工具类
- jquery根据滚动条动态加载数据
- jQuery功能一览
- 阮一峰:jQuery最佳实践
- 使用jQuery timelinr和animate.css创建超酷的CSS动画时间轴特效
- jquery获取表单的值
- jQuery插件jquery-barcode实现条码打印的方法
- JQuery学习总结
- Jquery插件
- jquery单选框radio值改变change事件
- jquery基础dome(判断复选框是否被选中)
- $()一点感想(jquery)
- 20151124 Jquery UI form 表单变成dialog
- jQuery插件formValidator自定义函数扩展功能实例详解
- jQuery插件之ajaxFileUpload(ajax文件上传)