jquery中的get和post、ajax有关返回值的问题描述
一:前言
今天我就要离开公司回学校准备考试,在走之前,我自己做的一个模块测试除了一些小的bug。问题如下
我在往数据库中插入数据,首先要选择一级菜单,接着会更具一级菜单生成一级菜单的子目录,在选择日期。填完数据后进行保存操作。在点击保存时需要对新增的数据进行验证,就是根据一级目录的编号和日期来进行查询,如果有的话就要弹出一个提示框,告诉其其中已经有了改目录该日期的数据。在这里我就需要进行验证。但是我在用jquery.get方法来写时怎么都没有用。而此时我又快下班走人了,弄得我很烦躁,最后还是一个老大哥来帮我解决这个问题。
二:问题代码:
function checkForm(){ $.get("url",{'参数1':a,'参数2':b},function(data){
if("success"==data){//返回success表示数据库中有改数据,所以该返回false
showTips("数据库中已经有该数据,如需要请查找进行更改");
return false;
}
}); return true;
}
我这里的代码怎么执行,返回的都是true,也就是说我每次都是执行插入操作。这个验证基本没有用处。
所以我用IE和火狐的浏览器进行调试都没用,也没报错误。快下班之前,找到了一个其他公司的老大哥(我是在外面驻点的,好几家公司在一起),他看了一会,就是这个是异步与同步造成的,刚刚开始我不相信,因为代码执行到return哪里基本就没反应了,我怎么都不会想到是异步或者是同步造成的。老大哥说这需要用ajax,指定为同步,因为jquery的post和get都是异步的。最后我们对代码进行了更改如下:
function checkForm(){
var flag=true;
$.ajax({url:"/xxx/xxx.do"},data:{'参数1':a,'参数2':'b'},async:false,success:function(data){
if("success"==data){
flag=fasle;
}
});
if(flag==false){
showTips("XXXXXX");
return false;
} }
其实这代码一进行对比,就知道是同步和异步的区别,刚刚在网上也查了下资料说法如下:如果是异步的话,还没来得及赋值,就已经return了。而同步的话就是说ajax有了返回值后才会执行下面的代码。其实这些应该也是。
我现在自己的理解就是知道用同步的话会有返回值,二用异步的话返回不了,在异步代码中,return的话只有返回到function(data)外,但是还是在$.get("","",function(data))里面,根本就没有跳出方法外。这是我自己一点理解。
三:总结
自己的IT路踩刚刚开始,也要学会能帮助别人,就像那个老大哥样,他给了我很大的帮助,我问了他很多问题,他的经验很丰富。好人有好报的,希望在以后的IT路上,能有更多的有经验的人可以給我们这写菜鸟帮助。前段时间在一个qq群上群主和一些其他朋友也给我了很大的帮助。自己的路还很长。努力,加油啊。走了,明天回学校准备期末考试了,今年大三,明年大四,希望在这段时间能充实自己,为自己以后出来打下坚实的基础
jquery中的get和post、ajax有关返回值的问题描述的更多相关文章
- jQuery中ajax如何返回值到上层函数
jQuery中ajax如何返回值到上层函数 一.总结 一句话总结: ajax的同步操作即可,设置 async: false, 二.jquery的同步操作 var can_submit=true; $. ...
- Jquery ajax 得到返回值
Jquery ajax 得到返回值 1.ajax默认是异步调用的,所以得到的返回值是空值,要得到值必须改成同步:async: false,//同步. 2.必须定义一个全局变量 var result = ...
- C#中的函数(二) 有参有返回值的函数
接上一篇 C#中的函数(-) 无参无返回值的函数 http://www.cnblogs.com/fzxiaoyi/p/8502613.html 这次研究下C#中的函数(二) 有参有返回值的函数 依然写 ...
- JQuery中常用的$.get(),$.post(),$.ajax(),$.getJSON(),load()的详解与区别
背景:因为最近需要获取本地的数据件进行项目测试,需要用到JQuery实现数据文件的读取,但是由于对JQuery内的获取文件方式不太了解,这次趁着机会进行一下总结.因为该总结是本人根据平常的使用及网上的 ...
- jquery中通过trim() length 判断数据是否有值
在jquery中可以通过如下方式判断某一个字符串是否有值,结合if else if 语句进行业务逻辑的处理 <!DOCTYPE html> <html lang="en&q ...
- jquery序列化from表单使用ajax提交返回json数据(使用struts2注解result type = json)
1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @Paren ...
- 关于ajax中return并不能作为方法的返回值
接下来关于ajax中的return值最后没有办法是方法的最终返回值问题 login(username,password) { console.log("进入方法"); $.ajax ...
- 微信浏览器Ajax请求返回值走error
微信浏览器Ajax post请求是返回值走的error $.ajax({ type: "POST", url: "https://XXXX", cache: f ...
- GCC:条件判断中赋值语句和函数结尾时无返回值的警告
有下面非常经典的一个字符串复制程序. test1.c #include <stdio.h> int main() { char str_t[]="This String come ...
随机推荐
- RTSC和XDCTool的理解
1. 在使用TI的开发工具CCS中,里面有几个重要的概念,一直不太清晰,RTSC是什么,XDCTool是什么?包是什么?包的版本为啥都是4位的(比如mathlib_c66x_3_0_1_1)?star ...
- EF使用报错说缺少引用
在程序中已经引用了EF,也引用了System.Data,但是一起报这个错误: 在类前面也已经写了 using System.Data.Entity,百思不得其解,最后才发 ...
- Android AppWidget偶尔无响应原因及解决办法
Android AppWidget偶尔会出现无响应问题,如按钮点击失效,数据不更新等等. 测试后发现,一般出现在手机用清理工具(或系统自己)清理后发生,或手机重启后发生. 目前经过测试,找到的办法是把 ...
- 问题 B: Prime Number
题目描述 Output the k-th prime number. 输入 k≤10000 输出 The k-th prime number. 样例输入 10 50 样例输出 29 229 #incl ...
- 软工实践Beta冲刺(1/7)
队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...
- servlet入门(1)
第一个servlet类 1.编写一个java类,继承HttpServlet类 2.重写doget和dopost方法 3.Servlet程序在tomcat服务器运行 第一步:找到server窗口,并新建 ...
- PTA循环,函数,数组作业
PTA循环实验作业 题目一:统计素数并求和 ### 1.PTA提交列表 2.设计思路(+流程图) 先定义变量(包含素数区间,循环次数,除数,素数个数记录和和的记录) 输入范围 一重循环:循环提取自然数 ...
- LTE:上行调度请求(Scheduling Request,SR) LTE:下行资源分配类型
http://blog.sina.com.cn/s/blog_927cff010101a7yh.html 上行调度请求(Scheduling Request,SR) 如果UE没有上行数据要传输,eNo ...
- B - 整数区间
B - 整数区间 Time Limit: 1000/1000MS (C++/Others) Memory Limit: 65536/65536KB (C++/Others) Problem Descr ...
- Intellij IDEA将工程打包成jar包并执行
打开File -> Project Structure -> Artifacts 点击“+”,选择“Jar”,选择Empty或From modules with dependencies, ...