jquery validator를 async로 유효성을 체크하는 custom validator 추가하는 방법

2013-05-21 17:42

jquery validator에 custom validator 추가할 때마다 매번 격는 문제라 여기에 남겨노려 한다. custom jquery validator 추가할 때 async로 처리하는 경우 유효성 처리가 async로 진행되어 정상적인 결과를 처리하지 못하는 경우를 종종 경험한다.

이 경우 다음과 같이 jquery ajax function에서 async를 false로 설정하고 다음과 같이 custom validator를 추가할 수 있다.

$.validator.addMethod("duplicateUserId", function(value, element, param) {
    var validator = this;
    var userId = $(param).val();
    var isSuccess = false;
    
    $.ajax({
        url: '/api/users/duplicateUserId',
        data: { userId: userId },
        success: function(response) {
            if( !response ) {
                return true;
            }
            var errors = {};
            errors[element.name] = SL10N.User.duplicateUserId(userId);
            validator.showErrors(errors);
            return false;
        }, 
        dataType: 'json',
        async: false
    });
    
    return true;
});

0개의 의견 from SLiPP

의견 추가하기

연관태그

← 목록으로