2013-04-06 2 views
0

부모 함수에서 반환 "자식"(올바른 용어를 모르는) 함수에서 반환을 전달하려면 ... 어떻게 올바른지 이 일을하는 방법? check_data는() $.post 당신이 check_data에 데이터를 반환하는 데 사용할 수 없습니다 비동기 기능이 true 또는자바 스크립트 하위 함수가 부모 함수 반환 반환

function check_data(type,field){ 
    var chkvalue = $(field).val(); 
    $.post("mods/ajax.fieldchk.php", { 
     chkvalue: chkvalue, 
     type: type 
    }, 
    function(result){ 
     if(result==0){ 
      $(field).css({'background-color': '#faa', 'border': '1px solid #f00'}); 
      return false; 
     }else if(result==1){ 
      $(field).css({'background-color': '#afa', 'border': '1px solid #0f0'}); 
      return true; 
     } 
    }; 
} 

thnx

+1

당신은 비동기 작업에서 반환 할 수 없습니다와 같은 .post'$로()'. 콜백 및 지연 객체 작업에 대해 배우려면 위의 주제를 읽으십시오. –

+0

$ .post는 기본적으로 비동기 함수이므로 check_data 함수가 예상보다 먼저 종료됩니다. – EmeraldCoder

답변

3

는 false 반환하지 않습니다. 그러나 일부 콜백을 전달하고 true/false 인수로 실행할 수 있습니다. 이 같은

뭔가 :

function check_data(type,field,callback){ 
    var chkvalue = $(field).val(); 
    $.post("mods/ajax.fieldchk.php", { 
     chkvalue: chkvalue, 
     type: type 
    }, 
    function(result){ 
     if(result==0){ 
      $(field).css({'background-color': '#faa', 'border': '1px solid #f00'}); 
      callback(true); 
     }else if(result==1){ 
      $(field).css({'background-color': '#afa', 'border': '1px solid #0f0'}); 
      callback(false); 
     } 
    }; 
} 
+0

샘플 콜백 함수를 제공하는 것이 좋을 것 같습니다. –

+0

@LeeTaylor 그가 달성하려고하는 것이 무엇인지 알고 있다면 – letiagoalves

관련 문제