从if块成功调用函数

时间:2012-06-18 14:03:06

标签: javascript jquery ajax callback

Hello其他程序员。我是jquery ajax的新手。 我如何从if块调用函数checkreturn()或者是否可以在成功之外访问msg然后请告诉我如何。我需要它,因为只有条件证明是真的,我必须启用后续的文本框。这是我的代码。谢谢您的时间和回复.Rajesh。

<script type="text/javascript" >    

        function checkreturn()        {   

            document.getElementById("txtAns").removeAtrribute("disabled");                     
        }
        function cQtn(e){             
        var uname= $("#<%=Username.ClientID%>").val();
        var sq=$("#<%=SecQuest.ClientID%>");
        var sqtn = $("#<%=SecQuest.ClientID%> option:selected").text();
        var sans=$("#txtAns");      
        var msgbox = $("#Dstatus");
          $.ajax({
                    type: "POST",                    
                    url: "forgotpassword.aspx/CheckValidSQtn",
                    data: "{'uname':'"+uname+"','args':'"+sqtn+"'}", 
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {                                                                                                             
                         if (msg.d == 'Available') {                            
                            sq.removeClass("notavailablecss");
                            sq.addClass("availablecss");
                            msgbox.html('<img src="proj_mages/a.png"> <font color="Green"> Valid </font>');
                            //how do i call from here??                                                                                                              
                           }
                        else {                            
                            sq.removeClass("availablecss");
                            sq.addClass("notavailablecss");
                            msgbox.html(msg.d);                           
                        }                        
                    }                                                 
                });                                     
      }     

    </script>

3 个答案:

答案 0 :(得分:2)

您的checkreturn功能中有拼写错误。您想使用removeAttribute,而不是removeAtrribute(加倍t,而不是加倍r)。

此外,您可以使用jQuery个功能:

function checkreturn(){   
    $('#txtAns').prop('disabled',false);                
}

,而不是原生的DOM函数(document.getElementByIdsetAttribute):

答案 1 :(得分:0)

不确定为什么普通方式不起作用,但你可以尝试强制浏览器应该做什么,

function checkreturn(){   
     document.getElementById("txtAns").removeAtrribute("disabled");                     
}

变为

window.checkreturn = function(){   
     document.getElementById("txtAns").removeAtrribute("disabled");                     
}

然后尝试通过window.checkreturn();checkreturn();进行呼叫,您也可以尝试另一种方式,这样您就可以离开功能并尝试拨打window.checkreturn();

如果这些都不起作用,它会说你的功能没有进入你的页面的窗口(全局)范围使用Firebug或Inspector并尝试所有checkreturn();看看你得到什么异常,

如果你找不到你的代码可能是关闭或某些东西

答案 2 :(得分:-1)

我会进一步调查,但尝试async调用ajax来设置false

function checkreturn() {

    document.getElementById("txtAns").removeAtrribute("disabled");

}

function cQtn(e) {

    var uname= $("#<%=Username.ClientID%>").val(),
        sq=$("#<%=SecQuest.ClientID%>"),
        sqtn = $("#<%=SecQuest.ClientID%> option:selected").text(),
        sans=$("#txtAns"),
        msgbox = $("#Dstatus");

    $.ajax( {
        async: false,
        type: "POST",
        url: "forgotpassword.aspx/CheckValidSQtn",
        data: "{'uname':'"+uname+"','args':'"+sqtn+"'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            if (msg.d == 'Available') {
                sq.removeClass("notavailablecss");
                sq.addClass("availablecss");
                msgbox.html('<img src="proj_mages/a.png"> <font color="Green"> Valid </font>');
                //how do i call from here??
            } else {
                sq.removeClass("availablecss");
                sq.addClass("notavailablecss");
                msgbox.html(msg.d);
            }
        }
    } );

}

现在,当进行ajax调用时,脚本的其余部分将等待完成,而不是asynctrue时所有内容的继续。