敲除验证-动态验证消息 [英] Knockout Validation - Dynamic Validation Message

查看:59
本文介绍了敲除验证-动态验证消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用相等"验证规则.

I'm using the "equal" validation rule.

self.FirstName = ko.observable();
self.Lastname = ko.observable();
self.ValidationMessage = ko.computed(function(){
    return 'This is my dynamic validation message. ' + self.FirstName() + ' ' + self.LastName()
});
self.MyComputed = ko.computed(function() {
    // Keep it simple for example purpose
    return true;
}).extend({ equal: { message: self.ValidationMessage, params: false } });

我想知道是否有任何方法可以基于计算值或其他可观察值使验证消息动态化.

I would like to know if there is any way to make the validation message dynamic based on a computed value or other observables.

推荐答案

您不需要self.ValidationMessage.而是使用function作为消息,它将被动态调用.

you dont need self.ValidationMessage. instead use a function as message and it will get called dynamically.

function vm() {
  var self = this;
  self.FirstName = ko.observable();
  self.LastName = ko.observable().extend({
    equal: {
      message: function(params, observable) {
        return 'First Name: ' + params + ' and Last Name: ' + observable() + ' are not the same.';
      },
      params: self.FirstName
    }
  });
}

ko.applyBindings(new vm());

.validationMessage { display: block; }

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout-validation/2.0.3/knockout.validation.min.js"></script>

<input data-bind="textInput: FirstName"><input data-bind="textInput: LastName">

这篇关于敲除验证-动态验证消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆