淘汰验证多条消息

时间:2014-06-20 22:00:36

标签: knockout.js knockout-validation

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

然而,凭证有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
  }

1 个答案:

答案 0 :(得分:2)

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

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

这就是诀窍!