jquery ajax首次脚本不执行解决

1、添加async:false.即修改为同步了,什么意思?(按同事解释就是,这是等这个ajax有了返回值后才会执行下面的js。一语道破天机,怪不得以前很多ajax调用里面的赋值都不起作用)。这样等ajax给bol赋值完毕后,才执行下面的js部分。而刚刚异步的话,还没有来得及赋值,就已经return了。

$(‘document‘).ready(function() {
    function newajax(info) {
        $.ajax({
            type: ‘get‘,
            async: false,
            url: ‘user.php‘,
            data: info,
            success: function(msg) {
                if (msg == 1) {
                    rs = 1;
                } else if (msg == 0) {
                    rs = 0;
                } else {
                    rs = -1;
                }
            }
        });
        return rs;
    }
    $(‘#edit_signature‘).bind(‘click‘,
    function() {
        $(‘#s1‘).html("<input type=‘text‘ placeholder=‘输入签名‘ class=‘signature‘/>");
        $(‘.signature‘).blur(function() {
            var signature = $(‘.signature‘).val();
            if (signature == ‘‘) {
                $(‘.signature‘).hide();
            } else {
                var info = ‘act=signature&value=‘ + signature;
                var msg1 = newajax(info);
                if (msg1 == 1) {
                    showmsg(‘修改成功‘);
                    $(‘.signature‘).hide();
 
                    $(‘#signature‘).html(signature);
                } else if (msg1 == 0) {
                    showmsg(‘修改失败‘);
                    $(‘.signature‘).hide();
                } else {
                    showmsg(‘请登录‘);
                    location.href = "http://localhost/bookboss/member/login.php";
                }
            }
        });
    });
    $(‘#btn-save‘).click(function() {
        var name1 = $(‘#name‘).val();
        name = encodeURIComponent(name1, ‘UTF-8‘);
        var school = $(‘#school‘).val();
        school = encodeURIComponent(school, ‘UTF-8‘);
        var professional = $(‘#professional‘).val();
        professional = encodeURIComponent(professional, ‘UTF-8‘);
        var info = ‘act=edit&name=‘ + name + ‘&school=‘ + school + ‘&professional=‘ + professional;
        var msg1 = newajax(info);
        if (msg1 == 1) {
            showmsg(‘修改成功‘);
            $(‘#name1‘).html(name1);
        } else if (msg1 == 0) {
            showmsg(‘修改失败‘);
        } else {
            showmsg(‘请登录‘);
            location.href = "http://localhost/bookboss/member/login.php";
        }
    });
});
时间: 2024-10-09 04:57:46

jquery ajax首次脚本不执行解决的相关文章

jquery ajax跨域的完美解决方法(jsonp方式)

ajax跨域请求的问题,JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式,接下来为大家详细介绍下客户端JQuery.ajax的调用代码 今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式.分别是JQuery的 jquery.ajax jsonp格式和jquer

Jquery ajax加载等待执行结束再继续执行下面代码操作

Jquery等待ajax执行完毕再继续执行下面代码的效果,具体代码如下,其实就是将 jquery ajax 函数的 async 参数设置为 false 即可,该参数默认为 true: $(document).ready(function(){ loadphpernote(); window.open('http://www.phpernote.com'); }); function loadphpernote(){ var url='http://www.phpernote.com/ajax.p

jQuery ajax跨域请求的解决方法

在Ajax应用中,jQuery的Ajax请求是非常容易而且方便的,但是初学者经常会犯一个错误,那就是Ajax请求的url不是本地或者同一个服务器下面的URI,最后导致虽然请求200,但是不会返回任何数据,事实上简单来说请求同一个域名下的url或者说用不带http的绝对路径和相对路径请求是没有任何问题的,如果请求外部资源,那么这就称为跨域请求. 由于安全性的问题,浏览器默认不支持跨域调用,晚上也有很多方法,各有优缺点,但是有一个比较好的解决方法这也是jQuery1.2之后官方推荐的,那就是在客户端

Jquery ajax回调函数不执行

ajax如下: $.post( "${pageContext.request.contextPath}/deptHead_assign.action", {"studentId":student.id,"subjectId":selectedRows[0].subjectId}, function(result){ alert(result.num); $.messager.alert("系统提示","落选学生<

centos下,单引号括起来的shell脚本不执行解决方法

例子一: touch test.sh vi test.sh input test='echo "test*"|grep [a-zA-Z0-9] |wc -c' echo $test 保存,退出vi: sh test.sh 结果:echo "test*"|grep [a-zA-Z0-9] |wc -c 说明没有执行: 我们把一对单引号 修改成$();结果类容如下: test=$(echo "test*"|grep [a-zA-Z0-9] |wc -

Ajax中主页加载分页面后,分页面js脚本不执行的解决办法

没看懂,稍后再看 Ajax中主页加载分页面后,分页面js脚本不执行的解决办法 最近捣鼓JQuery,其中强大的Ajax系列函数令人印象深刻,所以做项目时毫不犹豫地采用了一下该技术,在主页中动态加载分页面进来,咋看效果 不错,都能实现了第一层次的加载,但深入下去问题就出来了:动态加载进来的页面中外联了js文件,其中的脚本却没有在加载后运行! (脚本在单独浏览该分页面时运行是正常的) 我郁闷了,打开Firefox中的Firebug查看了加载后的主页面中的DOM,所有元素的加载都是正常的啊~ 自己改来

Jquery.ajax报parseerror Invalid JSON错误的原因和解决方法:不能解析

(默认: 自动判断 (xml 或 html)) 请求失败时调用时间.参数有以下三个:XMLHttpRequest 对象.错误信息.(可选)捕获的错误对象.如果发生了错误,错误信息(第二个参数)除了得到 null 之外,还可能是 "timeout" , "error" , "notmodified" 和 "parsererror" . error事件返回的第一个参数XMLHttpRequest有一些有用的信息: XMLHttpR

JQuery html API支持解析执行Javascript脚本功能实现-代码分析

JQuery html用法(功能类似innerHTML) 开发中需要使用Ajax技术来更新页面局部区域, 使用的方法是ajax获取html代码段(字符串),然后将这个html代码段作为参数,传入目标DOM(JQuery对象)的JQuery html接口,此语句执行后, 会将html代码段解释执行, 显示出html代码段描述的页面控件. 例如: <html> <head> <script type="text/javascript" src="./

Jetty Cross Origin Filter解决jQuery Ajax跨域访问的方法

当使用jQuery Ajax post请求时可能会遇到类似这样的错误提示 XMLHttpRequest cannot oad http://xxxxxx. Origin http://xxxxxx is not allowed by Access-Control-Allow-Origin. 这是Ajax跨域访问权限的问题,服务器端不接受来自另一个不同IP地址的由脚本文件发出的http请求.解决这个问题需要在服务器端进行配置使服务器端可以接受来自不同域的脚本文件的http请求.一个简单的解决方法是