2013-03-14 5 views
6

사용자 정의 함수를 통해 jQuery 유효성 검사 엔진으로 하위 도메인의 유효성을 검사하려고합니다. 유효성 검사가 올바르게 수행 된 것으로 보이지만 .ajax 요청이 200을 반환하면 alertText가 표시되지 않습니다. Access-Control-Allow-Origin 헤더를 추가했으며 요청이 내 로그에서 성공적으로 완료되었는지 확인할 수 있습니다.jQuery 유효성 검사 엔진 사용자 정의 자바 스크립트 유효성 검사

내가 뭘 잘못하고 있니?

자바 스크립트 기능 :

function validateDomain(field, rules, i, options) { 
    var url = "https://" + field.val() + ".example.com/"; 
    $.ajax(url, 
     { 
      statusCode: { 
       200: function() { 
        //alert('name exists already'); 
        return options.allrules.validate2fields.alertText; 
       } 
      } 
     }); 
} 

양식 필드 :

<label class="required" for="signup[subdomain]">Subdomain<span>*</span></label> 
    <span>https://</span> 
    <input id="signup[subdomain]" name="signup[subdomain]" class="field field validate[required,funcCall[validateDomain]]" type="text"> 
    <span>.example.com</span> 
+0

오류 처리기를 추가하여 실행 여부를 확인할 수 있습니까? 내 질문에 구문 분석 오류가 발생할 수 있습니다. –

+2

은 [함수에서 AJAX 호출의 응답을 반환하는 방법]과 유사합니다 (http :// /stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call-from-a-function) – Bergi

+1

[tag : jquery-validate] 및 [tag : jquery-validation-engine]이 두 가지 완전히 다른 플러그인입니다. 어느 것을 사용하고 계십니까? – Sparky

답변

0

문제는 $.ajax는 비동기 기능이며, 이런 식으로 작동하지 않는 것입니다.

function validateDomain(field, rules, i, options) { 
    var url = "https://" + field.val() + ".example.com/"; 
    $.ajax(url, 
     { 
      statusCode: { 
       200: function() { // [ second function ] 
        return options.allrules.validate2fields.alertText; 
       } 
      } 
     }); 
} 

문제는 : 수익은 validateDomain에 대한 [second function]하지위한 것입니다.

jquery-validation-engine의 문서를 보면 나는 원하는 것을 할 수있는 방법을 볼 수 없습니다.

관련 문제