У меня есть следующие атрибуты в моей модели viewmodel, которые используют проверку нокаута, одна из них - это выборочная проверка, чтобы проверить соответствие пароля.
model.Password = ko.observable()
.extend({ required: { message: "Password is required.",
params: true,
onlyIf: function () { return model.IsCredentialsRequired(); }}
});
model.ConfirmPassword = ko.observable().
extend({ validation: { validator: mustEqual,
message: 'Passwords do not match.',
params: model.Password,
onlyIf: function () { return model.IsCredentialsRequired(); } }
});
код для пользовательской функции проверки
var mustEqual = function (val, other) {
return val == other();
};
Я обнаружил, что условие OnlyIf
отлично работает для model.Password
в зависимости от model.IsCredentialsRequired()
, но не работает для model.ConfirmPassword
. Может ли кто-нибудь помочь мне, почему это происходит? Есть ли другой способ, с помощью которого я могу использовать условная проверка для пользовательских правил?
Заранее спасибо