我使用敲除验证插件。但是当我初始化自定义选项时:
viewModel{
model:{
id: ko.observable(''),
title: ko.observable('').extend({required: {message: mymessage}})
},
testFunc: function(){
....
}
}
...
ko.applyBindings(this.viewModel, document.getElementById('mainView'));
ko.validation.configure({
errorMessageClass: 'error-message',
errorElementClass: 'error',
decorateInputElement: true
});
this.viewModel.model.errors = ko.validation.group(this.viewModel.model);
它们没有被应用。如果验证模型并显示错误 - 在没有我的课程error-message
的情况下获取默认插件消息并且输入不是用error
类修饰的。
但是当我将它们添加到标记时它们被应用:
<div id="mainView">
<table data-bind="with: model">
<tbody data-bind="validationOptions {errorMessageClass: 'error-message',
errorElementClass: 'error',
decorateInputElement: true}">
...
<td>
<input data-bind="value: title" type="text">
</td>
...
</tbody>
</table>
</div>
答案 0 :(得分:1)
为了验证插件提供了一些功能并正确应用了您的设置,您需要在应用任何绑定之前配置验证插件,以便在之前调用ko.applyBindings
。
所以你只需要改变这些行的顺序:
ko.validation.configure({
errorMessageClass: 'error-message',
errorElementClass: 'error',
decorateInputElement: true
});
ko.applyBindings(this.viewModel, document.getElementById('mainView'));