Knockout.js validationOptions不使用自定义BindingHandler
我正在使用durandal/breeze和Knockout 我正在使用Knockout.js validationOptions不使用自定义BindingHandler,knockout.js,breeze,Knockout.js,Breeze,我正在使用durandal/breeze和Knockout 我正在使用ko.validation对输入进行验证 这里有一个经典: <input type="text" data-bind="value: myDate, validationOptions: { errorElementClass: 'input-validation-error'}" /> .input-validation-error { background-color: #c75b55 !import
ko.validation
对输入进行验证
这里有一个经典:
<input type="text" data-bind="value: myDate, validationOptions: { errorElementClass: 'input-validation-error'}" />
.input-validation-error {
background-color: #c75b55 !important;
}
通过这个实现,验证工作正常,我的意思是ko.validation.group
工作正常
var validationErrorsCount = ko.computed(function() {
if (typeof itinerary() == 'undefined') return;
var validationErrors = ko.validation.group(itinerary());
return validationErrors().length;
});
但是输入文本框不再用红色标记。“validationOptions”似乎只适用于值绑定
有没有办法让我做验证工作
谢谢。验证框架有用于值绑定的挂钩,您需要调用
ko.validation.makeBindingHandlerValidatable("dateRW");
编辑:它不是未定义的
查看它调用的
knockout validation.js
源代码:
makeBindingHandlerValidable('value')
使值
绑定自动可验证
您可以尝试添加对MakeBindingHandlerValidable
的调用以注册处理程序:
ko.bindingHandlers.dateRW = {
//dateRW --> the 'read-write' version used both for displaying & updating dates
init: function (element, valueAccessor, allBindingsAccessor) {
...
},
update: function (element, valueAccessor, allBindingsAccessor) {
...
}
};
ko.validation.makeBindingHandlerValidatable('dataRW');
与空元素绑定。
我不想让文本框标记为红色。有时,允许在validationMessage绑定中使用额外的空标记(span)
<input data-bind="datepickerCustom: myDate"/>
<span data-bind="validationMessage: myDate" class="validationMessage"></span>
您确定没有拼写错误吗?我得到了错误对象#没有方法'MakeBindingHandlerValidable'
。不管怎样,谢谢。这是一个非常新的api函数,你们使用的是来自的最新版本吗?非常感谢你们两位。安德斯,我在你们的消息中跳过了我的小提琴。很抱歉如果你有时间,改正你的时间,然后把它带回来。
<input data-bind="datepickerCustom: myDate"/>
<span data-bind="validationMessage: myDate" class="validationMessage"></span>