type: "get"
是不是应该改成post。get貌似只能用来获取数据的,你如果是需要后台修改数据的话你这里使用的是异步提交的,再你return flag的时候,服务器还没有返回数据呢,就算是能成功修改,你的flag在这个函数的返回值也会是false,没有什么意义吧。

解决方案 »

  1.   

    问题一:
    如果ajax返回的数据是html代码,可以用正则表达式匹配其中的<span></span>标签;
    或者用转成jquery对象再用选择器查找:$('ajax返回的html字符串').find('span').html()问题二:
    改成同步提交(async: false),就可以让函数在得到查询结果后才返回了。
    但是如果查询耗时较长,同步提交会导致浏览器无响应,如果必须用异步提交,可以改变一下函数的使用方式,通过传一个回调函数来实现异步返回结果,例如://修改钱
    function update_pay_money(user_id_updatemoney,kouqian,getFlag) {
      
    var flag=false;//修改成功标志
    $.ajax({
    type: "get",
    url: "../DB.ashx",
    data: { "userid_pay": user_id_updatemoney, "money_pay": kouqian, "classid": "update_money" },
    datatype: "text",
    success: function (data_money) {
    if (data_money == "yes")
    flag = true;
    getFlag(flag);
    },
    error: function () {
    alert("error");
    getFlag(flag);
    }
    });
    }
    修改之前,调用此函数的方式是://当使用异步提交时,无法获取正确的flag
    var flag = update_pay_money('xxx', 'xxx');
    alert(flag);
    修改之后,调用此函数的方式是://异步提交时可以得到正确的flag
    update_pay_money('xxx', 'xxx', function (flag) {
    alert(flag);
    });