javascript - KnockOut.js 中可以进行依赖验证吗

标签 javascript jquery html validation knockout.js

通常验证工作独立于各自的绑定(bind)内容,例如 http://jsfiddle.net/supercool/JL26Z/53/

但是我有两个文本框name1 & name2 ,如 fiddle 中所述,如果以下条件失败,我需要显示验证失败:

  • name1如果 name2 则为强制项未输入。
  • name2如果 name1 则为强制项未输入。
  • 如果 name1 & name2留空我需要显示错误消息,即验证失败。

如果我让您感到困惑:简而言之,如果在任何文本框中输入文本,我正在寻找要通过的验证。

最佳答案

@delixfe suggested in another question here on SO 那样做:

var Phone = function () {
    var self = this;

    self.name1 = ko.observable("");
    self.name2 = ko.observable("");

    self.numbersHaveNoValue = ko.computed(function () {
        var value1 = self.name1(), value2 = self.name2();
        return !ko.validation.rules.required.validator(value1, true) &&
               !ko.validation.rules.required.validator(value2, true);
    });

    self.Validation = ko.validatedObservable([
        self.name1.extend({ required: { onlyIf: self.numbersHaveNoValue }}),
        self.name2.extend({ required: { onlyIf: self.numbersHaveNoValue }})
    ]);
}

参见fiddle

关于javascript - KnockOut.js 中可以进行依赖验证吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25240503/

相关文章:

javascript - moment.js 给出了错误的日期

javascript - BeginCollectionItem 维护页面位置 MVC 5

javascript - .not方法失败?

asp.net - 匹配 <a href="mailto : 的正则表达式

javascript - jQuery切片随机数量的div

javascript - new MyFunction() 与 new(MyFunction)

javascript - 使用 Javascript 对 XML 数据进行排序

javascript - 哪个更好 - Ext.get() 或 document.getElementById()

javascript - 通过 jQuery 获取没有文本的 HTML 片段

javascript - 如何在容器或表面内添加图像以产生视差