Проверка нокаута при связывании hasfocus

0

У меня проблема с проверкой нокаута на привязку 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>

Пожалуйста, примите.

Теги:
knockout.js

2 ответа

0

Вы можете добавить valueUpdate, чтобы указать, когда вызывать свои правила, например:

   self.lostfocus.extend({valueUpdate: 'afterKeyDown', NoBlankValidationlookup:
      { params: { control: self }, message: "Search Text cannot be empty"} });
  • 0
    Проблема заключается в том, что если пользователь просто выходит из элемента управления без ввода каких-либо символов, я также хочу показать сообщение об ошибке. Так что valueUpdate не поможет, верно?
  • 0
    Хорошо, я вижу. В этом случае я думаю, что связывание функции с событием размытия входов будет работать, например, data-bind = "event: {blur: (имя функции здесь)}"
0

use isModified (false) с вашим подтвержденным наблюдаемым при загрузке формы.

поэтому запустите что-то вроде этого:

self.lostfocus.isModified(false)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню