2012-06-18 4 views
0

안녕하세요 동료 프로그래머. jquery ajax에 초보자입니다. 블록에서 함수 checkreturn()을 호출하는 방법은 무엇입니까? 그렇다면 그 방법을 알려주십시오. 조건이 참이라고 증명하는 경우에만 후속 텍스트 상자를 활성화해야하기 때문에 필요합니다. 여기에 내 코드가 있습니다. 미리 시간을내어 대답 해 주셔서 감사합니다 .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> 
+5

같은 방법은? checkTurn(); – sachleen

+0

이 경우 checkreturn()을 사용하지만 yes입니다. –

+0

전화를받지 못했습니다. 나는 그것을 시도했습니다. if 블록 자체에서 텍스트 상자 컨트롤을 사용할 수있는 방법이 있습니까? –

답변

0

확실하지 어떤 일반적인 방법은 작동하지 않습니다하지만 당신은

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

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

그런 window.checkreturn();를 통해 호출 시도되고, 브라우저를 어떻게해야 무엇 강제로 시도 할 수없는 이유 또는 checkreturn(); 다른 방법으로 이것을 시도해 볼 수도 있습니다. 따라서 함수를 그대로두고 전화를 걸어보십시오. window.checkreturn();

것은 이들 중 어느 것도,이 함수는 창 페이지 사용 방화범 또는 관리자와 다시 무엇을 얻을 제외하고 표시되는 모든 checkreturn(); 시도에 대한 (글로벌) 범위를 입력하지 않는 말을 작동하지 않으면

당신이 얻을 경우 아닌 코드에서 우리에게 어떤 것을 표시되지 발견 어쩌면 폐쇄 또는 어떤 것을

-1

내가 더 그것으로 보이지만 falseajax 통화 async을 설정하려고합니다 :

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 일 때 모든 것이 계속되는 대신 완료 될 때까지 기다립니다.

2

checkreturn 기능에 오타가 있습니다. removeAtrribute 대신 removeAttribute을 사용하려고합니다 (double t, double이 아닌 r).

또한

, 당신은 jQuery 기능을 사용할 수 있습니다 : 대신 기본 DOM 기능 (document.getElementById, setAttribute)의

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

: 당신이 다른 곳 호출 것