Подтвердить что ты не робот

KnockoutValidation и условное обязательное правило

Я пытаюсь использовать KnockoutValidation с условными операторами. См. Следующий код:

self.transactionType = ko.observable('Option1');

self.ConditionalField = ko.observable().extend({
  required: true, 
  onlyIf: self.transactionType = ="Option2"
});

К сожалению, это не сработает. Я хочу иметь ConditionalField, только если transactionType имеет значение 'Option2'.

Каков наилучший способ использования условной проверки с помощью knockout.validation.js?

4b9b3361

Ответ 1

Я решил это.

Прежде всего я допустил ошибку, объявив transactiontype после того, как я определил conditionalfield. Конечный код, который работает, выглядит следующим образом:

self.transactionType = ko.observable("Option1");

self.conditionalField = ko.observable().extend({
  required: {
    onlyIf: function () { 
      return self.transactionType () == "Option2";
    }
  }
});