2013-03-27 3 views
1

녹아웃 2.2.1을 최신 knockout-validation.js와 함께 사용하십시오. 정수 값이 유효성 검사를 통과하지 않는 기존의 데이터가로드 될 때문자열 값이 녹아웃 유효성 검사를 통과하지만 정수 값이 전달되지 않는 이유는 무엇입니까?

http://jsfiddle.net/tbstudee/keRPY/4/

당신이 볼 수 있듯이,하지만 문자열 값은 다음과 같습니다

내 문제의 작동 예를 들어 다음과 같은 jsfiddle을 참조하십시오. 이는 viewModel이 기존 데이터로 초기화 될 때만 발생합니다.

로드 할 때 유효성 검사 오류를 주석으로 처리하므로 내 isValid 플래그에 문제가 있다는 것을 알고 있습니다.

self.isValid = ko.computed(function() { 
    return ko.validation.group(
     self, 
     { 
      observable: true, 
      deep: true 
     }).showAllMessages(true); 
}, self); 

정수 대신 int로 viewModel을 시드하는 것 외에이 작업을 수행하려면 어떻게해야합니까?

답변

1

maxLengthminLengthminmax을 사용해야하는 숫자입니다. 그렇지 않으면 유효성 검사가 끝나고 값이 문자열로 전송됩니다. 당신의 문자열 값에 TRUE ',하지만 인해`maxLength` 검사에 유효 : 당신은`수를 가지고 있기 때문에, this fiddle

self.myInt = ko.observable(data.myInt).extend({ 
     required: true, 
     number: true, 
     min: 100000, 
     max: 999999 
    }); 
+0

이 실제로 또 다른 문제를 상쇄 한 번보세요. – Tyrsius