允许使用空字符串敲除minLength

时间:2013-01-14 09:39:49

标签: javascript knockout.js knockout-validation

我是淘汰赛的新手,并试图锻炼如何使用验证。我们有以下代码 -

    var MyObjectModel = function(myObject){
    var self = this;
    self.myNumber = ko.observable(myObject.number).trimmed();
    self.myNumber.extend({
        minLength: {
            params: 7,
            message: "My Number is too short."
        },
        maxLength: {
            params: 7,
            message: "My Number is too long."
        }
    });

    self.errors = ko.validation.group(self);
}

现在我想更改代码,以便myObject.number的长度要么恰好为7,要么字段应为空。我该如何进行此更改?

任何帮助将不胜感激。如果您认为某些事情不明确,请告诉我,以便我详细说明。

1 个答案:

答案 0 :(得分:3)

您可以使用自定义模式:

var MyObjectModel = function(myObject){
    var self = this;
    self.myNumber = ko.observable(myObject.number).trimmed();
    self.myNumber.extend({
        pattern: {
            params: '^[0-9]{7}$|^$',
            message: "My Number must have 7 chars or stay empty."
        }
    });

    self.errors = ko.validation.group(self);
}