js中ajax异步导致的一些问题
问题1:ajax默认是异步,所以在ajax中对外面定义的变量赋值,不能正确赋值
1 $("form").submit(function () { 4 var flag; 5 $.ajax({ 6 type: 'GET', 7 url: "@Url.Action("action", "controller")", 9 //async: false, 10 success: function (data) { 11 if (data == "S") { 13 swal("该种子品种+种子批次已经存在!请勿重复添加!!", data.Msg, "warning"); 14 flag = false; 15 } 16 else { 17 flag = true; 18 } 19 } 20 }); 21 alert(flag); 22 return flag; 23 });
如果不加async:false这句话,alert(flag)永远都是undefined
由于是异步,没等到ajax返回结果执行success函数,先alert了。
故此时必须加上 async:false 这句话才能alert出来flag的赋值。
so easy