에 유효성 검사 : http://jsfiddle.net/jeffreyrswenson/CrYWn/5/내 질문을 설명하는 데 도움이 JSFiddle을 만든 블러
가 여기에 내가보고 싶은 내용은 다음과 같습니다
- 메시지 때 페이지가로드 나타나지 않아야합니다.
- 제출 버튼을 누르면 메시지가 표시됩니다.
- 메시지는 입력 값이 변경되고 사용자가 요소를 떠난 후에 나타나야합니다. (탭 또는 클릭을 다음 필드로 이동)
- 사용자가 입력을 변경하지 않고 메시지를 표시해야합니다 (예 : 필드가 필요하며 사용자가 필드를 탭하지만 값을 입력하지 마십시오. 유효성 검사 메시지가 나타나면 나타납니다.)
예상대로 처음 네 가지가 작동합니다. 마지막 항목이 가능합니까? 그렇다면 해당 동작을 사용하려면 무엇을 변경해야합니까?
HTML :
<label>First name:
<input data-bind='value: firstName' />
</label>
<br/>
<label>Last name:
<input data-bind='value: lastName' />
</label>
<br/>
<button type="button" data-bind='click: submit'>Submit</button>
<br/>
<span data-bind='text: errors().length'></span> errors
뷰 모델 :
var viewModel = function() {
ko.validation.configure({
decorateElement: true,
registerExtenders: true,
messagesOnModified: true,
insertMessages: true,
parseInputAttributes: true,
messageTemplate: null
});
this.firstName = ko.observable().extend({
required: true
});
this.lastName = ko.observable().extend({
required: true,
pattern: {
message: 'Hey this doesnt match my pattern',
params: '^[A-Z0-9]+$'
}
});
this.submit = function() {
if (this.errors().length == 0) {
alert('Thank you.');
} else {
this.errors.showAllMessages();
}
};
this.errors = ko.validation.group(this);
};