【问题标题】:Knockout validation check process and working order ?淘汰赛验证检查流程和工作顺序 ?
【发布时间】:2014-08-13 15:02:58
【问题描述】:

我有一个与 datepicker 绑定的文本框,我正在对其应用淘汰赛验证。

我需要澄清一下,对于文本框,我首先有 Extended 必填字段验证和旁边的一些自定义验证。

我主要担心的是,即使在第一个条件失败后(在我的情况下需要),如果淘汰赛执行验证条件,那么我就会遇到问题,即我得到 NULL 异常。

让我举个例子:

    self.startDate.extend({required: true}),

    self.startDate.extend({
 // here i have some complex logic where i `split` date `(like self.startDate().split('/') )`  date and do the following .
    })

加载我的文本框将是空的,没有日期。假设在加载时完成了完整的验证检查,我在拆分为self.startDate().split('/') 时得到错误,其中拆分为undefined,因为没有可观察的数据。

我需要澄清的事情是:

  • 如何在加载时进行验证检查?
  • 如果完成加载完整验证检查意味着无论如何我们都可以使验证以顺序方式工作,即一旦完成第一个条件,它应该像这样移动到下一个检查

非常感谢任何建议。

【问题讨论】:

  • 可悲的是没有sWWW 我只是在寻找一种情况,即使条件一失败,第二个验证条件也会执行。我希望它像if/else 而不是if
  • 通常情况下不应该有两个self.startDateextend 我需要把它放在一组我无法这样做。
  • 所以你不能拥有像self.startDate({require: true, extender2: doSomething})这样的东西
  • 好吧,我还没有完全尝试过,但它是我的其中一个,最重要的是正如您在上面的评论中提到的 self.startDate({require: true, extender2: doSomething})extender2 甚至在 require:true 失败时执行。

标签: javascript jquery validation knockout.js


【解决方案1】:

终于得到了我正在寻找的东西,但是以一种复杂而笨拙的方式,我每次都想避免

我的代码:

self.Validation = ko.validatedObservable([
                self.ForecastDateVM.extend({

required: { " enter something " },

validation: {validator: function (val, someOtherVal) {
                            if (val != undefined && someOtherVal() != undefined) {
                                var date1 = val.split('/'); 
                                var date2 = someOtherVal().split('/');

                            },
                            message: 'Must be greater ActualDate',
                            params: self.ActualDateVM
                        }
                    })
            ]);

我通过严格的调试工作澄清了一些事情:-

  • 加载我们在.extend({ 中的所有内容,所有这些都以sequential 成功顺序进行检查,即如果第一个条件失败,它不会检查第二个内部扩展。

  • 第一点让我的工作看起来直截了当。

简而言之,淘汰验证以 if/else 方式工作。

【讨论】:

    猜你喜欢
    • 2013-10-24
    • 2014-03-15
    • 2012-02-18
    • 1970-01-01
    • 2012-03-08
    • 2016-01-26
    • 2015-02-03
    • 2011-08-09
    • 2016-02-17
    相关资源
    最近更新 更多