【问题标题】:Knockout Validation onlyif object no function and pattern validationKnockout Validation onlyif object no function and pattern validation
【发布时间】:2016-11-24 17:08:24
【问题描述】:

当标题为空时,我希望 priceMax 是必需的。

我有代码

self.searchParameters = {
    title: ko.observable().extend({
      refreshCountOffers: 500
    }),
    priceMax: ko.observable().extend({
      required: {
        onlyIf: function() {
          return  title==null;
        }
      },
      refreshCountOffers: 500
    })
  };

,但我收到错误“未定义标题”。

当用户输入第一个字母时,如何禁用显示模式验证错误的选项?

postCode: ko.observable().extend({
  required: true,
  pattern: {
    message: 'Post code is not valid',
    params: '[0-9]{2}-[0-9]{5}'
  },
  refreshCountOffers: 500
})

我的jsfiddle

【问题讨论】:

  • 我想你在这里问了 2 个问题。除非它们是相关的(我不相信它们是相关的),否则您应该在单独的问题中询问它们

标签: validation if-statement design-patterns knockout.js required


【解决方案1】:

onlyIf 检查有 2 个问题:

  1. 您需要限定title 属性
  2. title 是可观察的,因此您需要访问该值

下面的代码解决了这两个问题:

onlyIf: function() {
    return self.searchParameters.title();
}

【讨论】:

  • 谢谢,但我收到错误“无法读取未定义的属性'标题'”jsfiddle.net/llukaszz92/ybamy0du/3
  • 啊,这是因为第一次调用onlyIf时还没有分配self.searchParameters。在this fiddle 中,我将searchParameters 的构造提取到单独的语句中,以便onlyIf 可以访问变量
猜你喜欢
  • 2014-04-16
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
  • 2020-10-13
  • 2015-11-23
  • 1970-01-01
相关资源
最近更新 更多