2014-10-13 2 views
1

녹아웃 유효성 검사를 사용하여 적어도 n 개의 항목이 있는지 확인하는 관찰 가능 어레이에 간단한 유효성 검사를 적용하려고합니다.observableArray의 유효성 검사와 일반 관찰 가능성의 차이점

나는 내가 검증 기능이 호출되는 및 내 console.dir()과 검증의 올바른 결과를 볼 수 있습니다 내 모델

self.contacts = ko.observableArray().extend({ minSelected: 1 }); 

에 적용 간단한 테스트 유효성 검사 규칙

ko.validation.rules['minSelected'] = { 
    validator: function (val, minimum) { 
     var result = (val.length >= minimum); 
     console.dir(result); 
     return result; 
    }, 
    message: 'This field requires at least {0} selected items.' 
}; 

을 만든

결과가 유효성 검사 프로세스에 영향을 미치지 않는 것으로 보입니다.

나는 또한 표준 관찰 가능에 완벽하게 작동하는 항상 잘못된 검증기를 만들려고 시도했지만 observableArray에서는 작동하지 않습니다.

ko.validation.rules['never'] = { 
    validator: function (val, param) { 
     return false; 
    }, 
    message: 'I will never be valid.' 
}; 

self.single = ko.observable().extend({ never: 'ever' }); 
self.multiple = ko.observableArray().extend({ never: 'ever' }); 

관찰 가능한 배열의 유효성 검사와 관련하여 뭔가 빠졌습니까?

+0

1 :

는 여기에 내가이 일을하는 데 방법의 샘플 마크 업입니다! – Jeroen

답변

1

나는이 문제를 해결하여 여기에 답변을 게시하므로 다른 도움이됩니다.

유효성 검사가 제대로 작동하지 않았지만 어떤 피드백도 표시되지 않았습니다.validating a computed field (유효성 검사 메시지에 바인딩 된 내 스팬 추가)와 동일한 프로세스를 사용했으며 eveything은 현재 예상대로 작동합니다. 잘 작성된 Q & A 및 공유

<select data-bind="options: contactList, 
        optionsText: 'text', 
        optionsValue: 'value', 
        selectedOptions: contacts" 
     multiple> 
</select> 
<span data-bind="validationMessage: contacts" class="validationMessage"></span>