0

こんにちは仲間のプログラマー。私は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>
4

3 に答える 3

2

関数にタイプミスがありますcheckreturn。(double ,not double )removeAttributeの代わりに ,を使用します。removeAtrributetr

また、jQuery関数を使用できます。

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

、ネイティブDOM関数 ( document.getElementByIdsetAttribute) の代わりに:

于 2012-06-18T14:26:16.867 に答える
0

通常の方法が機能しない理由はわかりませんが、ブラウザが行うべきことを強制してみることができます。

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

なる

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

次に、経由で呼び出してみるwindow.checkreturn();checkreturn();、これを逆に試して、関数を離れて呼び出してみることもできますwindow.checkreturn();

これらのいずれも機能していない場合は、関数がページの window(Global) スコープに入っていないことを意味し、Firebug または Inspector を使用してcheckreturn();、返される例外をすべて確認してください。

not found が表示された場合、コード内の何かが表示されていない可能性があります。

于 2012-06-18T14:17:52.887 に答える
-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.

于 2012-06-18T14:20:39.623 に答える