请输入代码 $(元素).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
看看这个写的是不是有帮助:点击查看
你的意思是想知道后台对数据的处理结果是吧。因为是异步的,所以只能在回调函数中处理啊。一定要返回结果,是有别的什么目的吗?