【发布时间】:2013-01-14 02:51:09
【问题描述】:
我的视图模型中有以下使用淘汰赛验证的属性,其中之一是自定义验证以检查密码匹配。
model.Password = ko.observable()
.extend({ required: { message: "Password is required.",
params: true,
onlyIf: function () { return model.IsCredentialsRequired(); }}
});
model.ConfirmPassword = ko.observable().
extend({ validation: { validator: mustEqual,
message: 'Passwords do not match.',
params: model.Password,
onlyIf: function () { return model.IsCredentialsRequired(); } }
});
自定义验证函数代码
var mustEqual = function (val, other) {
return val == other();
};
我发现OnlyIf 条件对model.Password 工作正常,具体取决于model.IsCredentialsRequired(),但它不适用于model.ConfirmPassword,有人可以帮我解释为什么会这样吗?还有其他方法可以使用吗?自定义规则的条件验证?
提前致谢
【问题讨论】:
-
我仍然试图理解为什么你的代码不起作用。 model.IsCredentialsRequired 是可订阅的(可观察的还是计算的)?
-
对,model.IsCredentialsRequired 已计算
标签: knockout.js knockout-validation