2011-11-20 3 views
0

RSV jQuery 유효성 검사 from here 사용.성공적인 jQuery 유효성 확인 문제 후 Ajax 호출

정말 한 곳에서 붙어 있습니다. 이 플러그 인에 대한 사용자 지정 오류 처리기를 작성 했으므로 (설명서를 읽으십시오, 허용되었습니다) 이제는 오류를 표시하고 정확한 필드에 하나씩 집중 한 다음 유효성 검사 끝에 오류가없는 경우 return (errorInfo.length == 0) ? true : false;이 true를 반환합니다. 문제는이 rsv가 폼 데이터를 PHP로 직접 보낸 후입니다. 하지만 성공적인 유효성 검사 후 Ajax 함수를 실행하고 싶습니다. 나는 "완성 된"이벤트에 대한 또 다른 함수를 작성했습니다. 플러그인은 완전한 함수를 발생시키지 않습니다. 그 문제를 해결하도록 도와주세요. 당신이 customErrorHandler를 사용하는 경우

$(document).ready(function() { 
    $("#signup_form").RSV({ 
     onCompleteHandler: wellDone, 
     customErrorHandler: errorHandler, 
     rules: signup_rules 
    }); 
}); 
function errorHandler(f, errorInfo) 
{ 
    for (var i=0; i<errorInfo.length; i++) 
    { 
     // errorInfo[i][0] contains the form field node that just failed the validation, e.g. 
     errorInfo[i][0].focus(); 
     // errorInfo[i][1] contains the error string to display for this failed field, e.g. 
     $.notifyBar({ 
      cls: "error", 
      html: errorInfo[i][1] 
     }); 

    } 

return (errorInfo.length == 0) ? true : false; 
} 

function wellDone(){ 
    signUp(); 
} 

var signup_rules = [ 
<some validation rules>... 
] 

답변

0

는 다음 실제로 onCompleteHandler가 호출되지 않습니다. 너 customErrorHandler의 마지막에 전화하면 errorInfo.length == 0 일 때 직접 전화를 거는 것으로 간주됩니다.

+0

도 시도했습니다. 성공하지 못했습니다. 우리는 계속 skype에 대한 불화를 할 수 있습니까? 도와 줄 사람이 정말 필요해. – heron

0

아마 당신은 customErrorHandler 함수에서 리턴하는 true 또는 false 값을 (ajax 호출을 수행하는 모든 함수에서 사용할 수있는) 변수에 캐시하고이를 사용하여 ajax 호출을 호출할지 아니면 아니.

0
귀하의 customErrorHanlder 항상 "false"를 반환해야

,하지만 "balabala 사실 : 거짓"이것은 자바 스크립트와 편안하고 누가 오류가 얼마나 이상 좀 더 컨트롤을 필요로하는 사람을위한

제시했다. 양식 제출시 발생하는 오류 목록 이 전달 된 사용자 지정 함수를 정의 할 수 있습니다. 다음은 각 오류를 차례로 경고하는 간단한 예입니다. 참고 : 오류 정보가 제대로 전달 되려면 순서로 두 개의 함수 매개 변수를 설정해야합니다.

customErrorHandler: 

$(document).ready(function() { 
    $("#demo_form1").RSV({ 
    customErrorHandler: myReturnFunction, 
    rules: [ 
     // ... 
    ] 
    }); }); 
/**  
    * @param f the form node  
    * @param errorInfo an array of arrays. Each sub-array has two elements: the field node and the error message.  
    */ 
function myReturnFunction(f, errorInfo) { 
    for (var i=0; i<errorInfo.length; i++) 
    { 
    // errorInfo[i][0] contains the form field node that just failed the validation, e.g. 
    errorInfo[i][0].focus(); 
    errorInfo[i][0].style.color = "red"; 

    // errorInfo[i][1] contains the error string to display for this failed field, e.g. 
    alert(errorInfo[i][1]); 
    } 

    return false; // always return false! Otherwise the form will be submitted** 
} 

코드와 주석의 마지막 줄을 볼? 항상 false를 반환합니다 .-