Итак, вот проблема, с которой я столкнулся в течение нескольких дней.
У меня есть приложение Durandal, и я хочу применить проверку ko к элементам управления. Теперь проверка применяется, но проблема в том, что она не вступает в силу при первой загрузке. Например, если у меня есть текстовое поле, для которого требуется установить значение true, и во время загрузки это текстовое поле пусто, KO не показывает требуемое сообщение.
Он показывает сообщение только в том случае, если я набираю что-то в текстовом поле, затем выхожу из текстового поля, снова захожу в текстовое поле, удаляю данные и затем снова выхожу из текстового поля.
Я даже пытался добавить ko.validation.init({messagesOnModified: false}) и параметр проверки в HTML внутри тега div.
Но никакого аффекта.
Ниже мой код
define(function (require) {
ko.validation.init({
messagesOnModified: false
});
var duration = ko.observable().extend({
required: { message: 'Please enter valid number.' }, number: true
});
var email = ko.observable().extend({ email: true, required: true });
var vm = {
duration: duration,
email: email
};
vm["errors"] = ko.validation.group(vm);
return vm;
});
HTML-код
<span data-bind="text: errors().length"></span> Errors
<div>
<label for="txtDuration">Duration</label>
<input name="txtDuration" type="text" data-bind="value: duration" />
<span>(Min)</span>
</div>
<div>
<label for="txtEmail">Email</label>
<input name="txtEmail" type="text" data-bind="value: email" />
</div>
<input type="submit" value="Submit" data-bind="enable: isValid()">
</form>
Please help.