У меня проблема с проверкой нокаута на привязку hasfocus.
Я пытаюсь проверить элемент управления и показать сообщение об ошибке, когда элемент управления теряет фокус. но когда форма загружает себя, правило запускается и отображается сообщение об ошибке.
есть ли все-таки сказать при загрузке формы или когда мы инициализируем правила, чтобы не стрелять?
self.lostfocus = ko.observable(false);
self.lostfocus.extend({ NoBlankValidationlookup: { params: { control: self }, message: "Search Text cannot be empty"} });
ko.validation.rules['NoBlankValidationlookup'] = {
validator: function (val, params)
{
////if the control looses focus then validate.
if (!val)
{
if (params.control.Value().length == 0)
{
return false;
}
else
{
return true;
}
}
else
{
return true;
}
},
message: 'Please enter at least 0 characters.'
};
//HTML
<div id="Div1" class="vm" style="display: block !important; text-align: left" data-bind="validationMessage:lostfocus"></div>
Пожалуйста, примите.
Вы можете добавить valueUpdate, чтобы указать, когда вызывать свои правила, например:
self.lostfocus.extend({valueUpdate: 'afterKeyDown', NoBlankValidationlookup:
{ params: { control: self }, message: "Search Text cannot be empty"} });
use isModified (false) с вашим подтвержденным наблюдаемым при загрузке формы.
поэтому запустите что-то вроде этого:
self.lostfocus.isModified(false)