我要求在所有输入字段上设置正则表达式验证。 我通过覆盖淘汰的价值绑定来做到这一点。 以下是代码方法。
var defaultInit = ko.bindingHandlers.value.init;
var defaultUpdate = ko.bindingHandlers.value.update;
var setValidationExtender = function(element, valueAccessor, allBindings, options) {
if (element.tagName.toLowerCase() === "input" &&
element.type === "text" && !element.disabled &&
!element.hidden && valueAccessor) {
if (allBindings() && ko.isObservable(allBindings().value)) {
allBindings().value.extend(options);
}
}
};
ko.bindingHandlers.value = {
init: function(element, valueAccessor, allBindings) {
defaultInit(element, valueAccessor, allBindings);
setValidationExtender(element, valueAccessor, allBindings, {
allowedChars: {
params: element
}
});
},
update: defaultUpdate
};
我想确保这种方法可以被淘汰原则所接受。 对于使用knockout validation lib的验证。 Knockout.js版本3.2.0。 提前谢谢。