none
JQUERY里AJAX返回值的问题 RRS feed

  • 问题

  • 小弟最近在学JQUERY,在学AJAX部分的时候遇到一个问题,代码如下:

    Code Snippet

     function useridvalidate()
        {
            var id=$("#txt_id").val();
            if(validate("^[\\w-]{4,20}$",id,false,"#mesg_id","<center><span  style='color:Red'>4-20位由英文、数字及“_”、“-”组成ID</span></center>","<center><span  style='color:Red'>请填写用户ID!</span></center>"))
            {
           
                var mesgcontrol = $("#mesg_id");
                mesgcontrol.empty();
                mesgcontrol.html("<center>正在验证用户名,请稍候。。。。。</cnter>");
                var cansub;
           
                mesgcontrol.ajaxStop(
                    function()
                    {
                        return cansub;
                    }
                );
           
                $.get(
                        "../AjaxResponse/Validate_HasUserId.ashx",
                        {userid:id},
                        function(mesg)
                        {
                            if("True"==mesg)
                            {
                                 mesgcontrol.empty();
                                 cansub = true;
                            }
                            else
                            {
                                mesgcontrol.empty();
                                mesgcontrol.html("<center><span  style='color:Red'>该用户名已被使用</span></center>");       
                                cansub = false;
                            }
                        }
                     );
            }
            else
            {
                return false;
            }
        }

     

        function sub()
        {
                var b = useridvalidate();
                alert(b);
        }

     

    SUB的执行结果是UNDEFINED,调试了一下,mesgcontrol.ajaxStopcansub=false。 要如何才能在SUB里获得返回值呢?

    2009年1月4日 16:16

答案

  • 首先,你要看useridvalidate();是否有返回值返回,如果有,b = useridvalidate();应当是可以的。
    另外一个方法是直接使用全局变量。
    jQuery不完全属于微软的技术,请将你使用的代码贴全,以便别人调试
    2009年1月5日 3:49
    版主

全部回复

  • function sub()
        {
                var b = useridvalidate();
                alert(b);

    return "你的返回值"
        }

    2009年1月5日 0:48
    版主
  • 不是这个意思啊。。。是在SUB里要如何才能获得 useridvalidate();的返回值

    2009年1月5日 2:50
  • 首先,你要看useridvalidate();是否有返回值返回,如果有,b = useridvalidate();应当是可以的。
    另外一个方法是直接使用全局变量。
    jQuery不完全属于微软的技术,请将你使用的代码贴全,以便别人调试
    2009年1月5日 3:49
    版主