如何将敲除验证添加到以前不需要的字段

时间:2014-06-09 13:24:26

标签: knockout.js knockout-validation

我有一个简单的淘汰视图模型,其中包含一系列乘客。每位乘客都有姓名,姓氏和号码属性。每位乘客的号码字段不是强制性的,除非他们勾选模型根目录。当用户选择包含数字文本框时,我不确定如何对数字文本框强制执行验证?希望很清楚,我的进展可以在下面的jsfiddle中找到。 谢谢!

代码尝试

self.number = ko.observable(false).extend('not sure how to ');

http://jsfiddle.net/Cf8Ap/3/

更新

尝试了以下方法。此尝试查看toggle()值以了解是否需要数字文本框 - 虽然不成功..

http://jsfiddle.net/Cf8Ap/4/

此更新包含以下更改

var Passenger = function() {
  self.cardNumber = ko.observable().extend({required: {onlyIf: function() {
        return $parent.toggle() === 'true';

2 个答案:

答案 0 :(得分:1)

您可以使用onlyIf

为验证提供条件
self.number = ko.observable(false).extend(required: {
        onlyIf: function () { return (self.isChecked()); }
    });

请参阅 documentation

答案 1 :(得分:0)

$ parent etc是一个只有视图的功能,无论如何,你的代码中有很多错误,这是一个工作版本

http://jsfiddle.net/Cf8Ap/7/

self.cardNumber = ko.observable().extend({
    required: {
        message: 'number is required',
        onlyIf: function() {
            return self.showCardNumber();
        }
    }
});