我有一个简单的淘汰视图模型,其中包含一系列乘客。每位乘客都有姓名,姓氏和号码属性。每位乘客的号码字段不是强制性的,除非他们勾选模型根目录。当用户选择包含数字文本框时,我不确定如何对数字文本框强制执行验证?希望很清楚,我的进展可以在下面的jsfiddle中找到。 谢谢!
代码尝试
self.number = ko.observable(false).extend('not sure how to ');
更新
尝试了以下方法。此尝试查看toggle()值以了解是否需要数字文本框 - 虽然不成功..
此更新包含以下更改
var Passenger = function() {
self.cardNumber = ko.observable().extend({required: {onlyIf: function() {
return $parent.toggle() === 'true';
答案 0 :(得分:1)
您可以使用onlyIf
self.number = ko.observable(false).extend(required: {
onlyIf: function () { return (self.isChecked()); }
});
请参阅 documentation
答案 1 :(得分:0)
$ parent etc是一个只有视图的功能,无论如何,你的代码中有很多错误,这是一个工作版本
self.cardNumber = ko.observable().extend({
required: {
message: 'number is required',
onlyIf: function() {
return self.showCardNumber();
}
}
});