【问题标题】:knockout validation multiple messages敲除验证多条消息
【发布时间】:2014-08-11 17:52:23
【问题描述】:

我有以下用于凭证代码的自定义验证规则,该规则有效并发送到服务器并正确验证我的凭证代码。

但是,凭证有 6 种不同的失败状态 - 过期、已兑换、用户不允许等。

我在 ajax 响应中设置了凭证消息,但这不会传播到验证消息。

单个验证规则是否可以有多个消息并根据结果更改消息?

我在docs 中找不到任何内容。

this.voucherMessage = "blah blah";
this.voucherCode = ko.observable("").extend({
  validation: {
    async: true,
    validator: function(val, params, callback) {
      var voucherCode;
      voucherCode = val.replace("-", "");
      return $.ajax({
        url: constantsRoutes.vouchers.getInfo(voucherCode),
        type: 'GET',
        success: callback
      }).done(function(response, statusText, xhr) {
        var isValid;
        _this.voucherDetails.setVoucher(response);
        _this.voucherMessage = _this.voucherDetails.voucherState.display();
        isValid = _this.voucherDetails.voucherState.state() === 0;
        return callback(isValid);
      });
    },
    message: this.voucherMessage
  }

【问题讨论】:

  • This 可能会帮助你(改变消息)
  • 谢谢 - 我找到了我在下面添加的答案 - 回调支持带有 isValidmessage 的复杂对象

标签: knockout.js knockout-validation


【解决方案1】:

我应该首先阅读 source code - 不过可能对其他人有用

callback({
  isValid: isValid,
  message: _this.voucherDetails.voucherState.display()
});

这就是诀窍!

【讨论】:

  • 很好,感谢您发布您对自己问题的解决方案,以便其他人可以使用它
猜你喜欢
  • 2013-07-09
  • 2013-01-21
  • 1970-01-01
  • 2012-05-22
  • 2013-01-14
  • 2012-11-23
  • 2013-01-13
  • 2012-09-16
  • 2018-04-11
相关资源
最近更新 更多