OnSubmit中的Ajax判断

今天在测试页面时,因为有一个radio是要默认checked,但是它要触发一个onclick事件,现在checked以后,把该事件放到onsubmit中,发现onsubmit第一次不触发该ajax,上网查阅资料后得出:

 

在ajax执行时,async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程)。

原代码

 $.ajax({
            type: "POST",   //http请求方式
            url: "/member_book/checkbalance",//发送给服务器的url
            data: {"memberphone": memberphone, "payment": payment}, //发送给服务器的参数
            dataType: "jason",  //告诉JQUERY返回的数据格式(注意此处数据格式一定要与提交的controller返回的数据格式一致,不然不会调用回调函数complete)
            complete: function (data) {

                 result = data.responseText;
                if (result != "false" && payment != "" ) {
                    // 购买成功,把提示信息标记为“1”
                   message.innerText="1"
                }

修改后:

要把异步方式改成同步方式
 $.ajax({
            type: "POST",   //http请求方式
            async:false,  //设置同步方式,非异步!
            url: "/member_book/checkbalance",//发送给服务器的url
            data: {"memberphone": memberphone, "payment": payment}, //发送给服务器的参数
            dataType: "jason",  //告诉JQUERY返回的数据格式(注意此处数据格式一定要与提交的controller返回的数据格式一致,不然不会调用回调函数complete)
            complete: function (data) {

                 result = data.responseText;
                if (result != "false" && payment != "" ) {
                    // 购买成功,把提示信息标记为“1”
                   message.innerText="1"
                }

 

posted @ 2018-12-17 16:25  Hiro-D  阅读(760)  评论(0编辑  收藏  举报