Задать вопрос

Как получить длину значения input?

Всем привет. Есть вот такая директива на ангуляре. Вешается на input.
Суть работы в том, чтобы она проверяла длину значения.Если хоть что-то введено, то добавляется класс. При уходе фокуса - все работает как надо. Как сделать, чтобы при загрузке
страницы также проверялась длина текста. Или просто проверка пусто в поле или нет.

Код инпута:
<div class="form-group form-group--passenger"
               form-error-highlight="vm.passengerForms[passNum].lastName">
            <input class="g-input" type="text"
                   name="lastName"
                   ng-model="passenger.lastName"
                   required
                   placeholder-helpers
                   ng-pattern="vm.passengerLastNameRegexp">
            <label class="placeholder">{{'web.profilePassengers.lastName' | alias }}</label>
            <error-message control="vm.passengerForms[passNum].lastName"></error-message>
          </div>


Код директивы:
angular.module('app').directive('placeholderHelpers', function () {
    return {
        require: 'ngModel',
        link: function (scope, elem, attrs) {
            var i;
            for (i = 0; i < elem.length; i++) {
                console.log(elem[i].html);
            }
            elem.on("blur", function () {
                var len = elem.val().length;
                if (len !== 0) {
                    elem.addClass('g-input__with-text');
                }
            });
        }
    };
});


Заранее спасибо!
  • Вопрос задан
  • 1150 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
ozknemoy
@ozknemoy
яваскриптист
закидывай в ng-class длину passenger.lastName
<input class="g-input" type="text"
                  ng-class="{'someClass':passenger.lastName.length}"
                   name="lastName"
                   ng-model="passenger.lastName"
                   required
                   placeholder-helpers
                   ng-pattern="vm.passengerLastNameRegexp">
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы