84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
请输入代码 $(元素).submit(function (){ var flag = false; $.ajax(...) .done(function (result){ if(result) flag = true; ); return flag; });
因为ajax是异步的,所以flag永远return false;本人是新手,只知道将ajax改为同步方式可以纠正;请问有没有用异步的方式实现的办法?
闭关修行中......
这是不可能的
原因是: submit函数的执行隶属于js主线程,而你要做的是延迟该函数的返回,这其中必有一段阻塞的代码。
不过,有不太优雅的替代方案: 在button的click中调用ajax,在ajax的回调中调用submit
$("form").submit(function() { $.ajax(...).done(function(result) { //成功执行业务处理 }).fail(function() { //失败业务处理 }); });
看看这个写的是不是有帮助:点击查看
你的意思是想知道后台对数据的处理结果是吧。因为是异步的,所以只能在回调函数中处理啊。一定要返回结果,是有别的什么目的吗?
这是不可能的
原因是: submit函数的执行隶属于js主线程,而你要做的是延迟该函数的返回,这其中必有一段阻塞的代码。
不过,有不太优雅的替代方案: 在button的click中调用ajax,在ajax的回调中调用submit
看看这个写的是不是有帮助:点击查看
你的意思是想知道后台对数据的处理结果是吧。因为是异步的,所以只能在回调函数中处理啊。一定要返回结果,是有别的什么目的吗?