所有文本输入的Knockout验证

时间:2016-09-07 08:15:27

标签: javascript validation knockout.js knockout-validation

我要求在所有输入字段上设置正则表达式验证。 我通过覆盖淘汰的价值绑定来做到这一点。 以下是代码方法。

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。 提前谢谢。

0 个答案:

没有答案