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 ...
随机推荐
- KMP python实现
首先去 https://blog.csdn.net/starstar1992/article/details/54913261/ 这里看下思想: 然后代码实现,一定要多调试几遍方能看懂: def ge ...
- Notepad++删除空行的多种实现办法
Notepad++支持基础的正则表达式,同时由于自身丰富的插件和功能,所以删除空行或有空格的空行,有多种实现办法,条条大路通罗马,闪电博客抛砖引玉,供大家参考. 一.删除空行(不包括有空格类符号的空行 ...
- 台湾ML笔记--1.1什么时候适合使用ML
适用情况: 1 exists some 'underlying pattern' to be learned --so 'performance measure' can be imporoved 例 ...
- 【连载】Maven系列(四)——配置私服
相关文章 1.<用起来超爽的Maven——入门篇> 2.<用起来超爽的Maven——进阶篇> 3.<Maven系列(三) 进阶> 一.为什么需要私服 有些公司并不提 ...
- Linux初步——常用简单命令
散乱的记录,目前是边学边用,以后有机会再整理 curl命令 发起一个HTTP请求,如:curl "http://www.baidu.com" 加上-I选项查看HTTP协议头的信息, ...
- 玩转Vim-札记(一)
玩转Vim-札记(一) 简介 在这个蔚蓝色的星球上,流传着两大神器的传说:据说Emacs是神的编辑器,而Vim是编辑器之神.一些人勇敢地拾起了Vim或Emacs,却发现学习曲线陡峭而漫长,还是有一些人 ...
- 多个excel合并(excel2007)
1.新建一个空的excel文件,在需要合并的目录下. 2.右键点击sheet1,点击查看代码 3.执行此段代码 Sub 合并当前目录下所有工作簿的全部工作表() Dim MyPath, MyName, ...
- Python 3基础教程27-字典
这篇来介绍Python中的字典.字典一般用大括号包裹起来,里面的元素都是有键和值组成. # 字典 # 我们随便设计几个城市的明天的最高温度tem ={'北京':22,'上海':23,'深圳':24,' ...
- GCD LCM 最大公约数 最小公倍数 分数模板 (防溢出优化完成)
自己写的一个分数模板,在运算操作时进行了防溢出的优化: ll gcd(ll a, ll b) { return b ? gcd(b, a%b) : a; } ll lcm(ll a, ll b) { ...
- UVA 11884 A Shooting Game(记忆化搜索)
A and B are playing a shooting game on a battlefield consisting of square-shaped unit blocks. The bl ...