2013-03-01 2 views
0

을 받고 내가 그 유효성을 확인할 수있는 방법을 못하고 있어요 것은 참 또는 거짓knockoutjs 검증 비동기 아약스는 항상 내가 녹아웃 검증 플러그인을 사용하고 유효하지 않은

ko.validation.rules['remote'] = { 
     async: true, 
     validator: function (val, parms, callback) { 
      var defaults = { 
       url: '/ajax/auth', 
       type: 'POST', 
       success: callback 
      }; 

      var options = $.extend(defaults, parms); 

      $.ajax(options); 
     }, 
     message: 'Default Invalid Message' 
    }; 

var username = ko.observable().extend({ remote : { data: {email : username} }}); 

// setting it will trigger validation 
username.isValidating.subscribe(function(isValid){ 
    if(isValid){ 
     // save the username or whatever you do 
    }else{ 
     // invalid 
    } 


// ajax.php 

function isValidEmail(){ 
     $data = $this->input->get_post(); 
     return is_valid_email($data['email']); 
}; 

난 항상 유효 무엇입니까 설명해 방법이 작업

+0

이것은 [tag : jquery-validate] 플러그인과는 전혀 관련이 없습니다. 태그가 제거되었습니다. – Sparky

답변

1

Ajax 응답에서 true 또는 false을 사용하여 유효성 검사 성공을 나타내는 callback을 호출해야합니다.

validator: function (val, parms, callback) { 
     var defaults = { 
      url: '/ajax/auth', 
      type: 'POST', 
      success: callback 
     }; 

     var options = $.extend(defaults, parms); 

     $.ajax(options, function(data){ 
      // data format depends on your implementation 
      // just for example: 
      if (data.result == 'ok') { 
       callback(true); 
      } else { 
       callback(false); 
      } 
     }); 
    },