【问题标题】:Knockout Validation - have input validate some other field淘汰赛验证 - 让输入验证其他字段
【发布时间】:2014-02-01 19:32:24
【问题描述】:

我正在使用knockout validation 并尝试完成应该是一个简单的用例。

我希望输入绑定到某个字段,但验证另一个字段。像这样的:

<input type="text" data-bind="validationElement: referrerId, value: referrerName" />  

但它似乎总是(正确)显示referrerName 而不是referrerId 的验证错误。有什么办法可以让它工作吗?

基本上我想要这个小提琴:

http://jsfiddle.net/W3pQt/1/

显示referrerId 的错误(在小提琴中始终为空)。

【问题讨论】:

  • 那么在您的示例中,哪个属性无效:referrerId 还是referrerName?当您谈论“验证错误”时,您是指自动插入的验证消息吗?你能整理一个 jsfiddle 来展示你的用例吗?
  • do you mean the automatically inserted validation messages - 是的。我希望此文本框验证referrerId。而已。我希望 tb 保持其值绑定到 referrerName,并针对 referrerId 进行验证

标签: javascript knockout.js knockout-validation


【解决方案1】:

http://jsfiddle.net/W3pQt/3/

我制作了一个自定义验证器,因为没有它我无法弄清楚如何去做。

ko.validation.rules['dependsOn'] = {
    validator: function (val, otherVal) {
        return typeof otherVal() !== "undefined";
    },
    message: 'Referrer Id must have a value: {0}'
};

ko.validation.registerExtenders();

...

this.referrerName.extend({ dependsOn: this.referrerId });

不要沉迷于“dependsOn”这个愚蠢的名字。给事物命名很难。

【讨论】:

  • Don't get hung up on the name 'dependsOn' which is dumb. Naming things is hard. - 很高兴我不是唯一一个这么想的人:)
  • 如果你有时间和兴趣看看另一个......stackoverflow.com/questions/21103748/…
  • 对此感到抱歉 - 我对 ko validate 感到非常沮丧,以至于我并没有真正考虑第二个问题。在这里再次感谢您的帮助。
  • 嘿,没问题。我去过那儿。很高兴为您提供帮助!
猜你喜欢
  • 2014-10-13
  • 2012-02-18
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
  • 2011-08-09
  • 2015-02-03
  • 1970-01-01
  • 2012-07-21
相关资源
最近更新 更多