Почему не срабатывает length?

$('.field__email').blur(function(){
    $('.field__email').removeClass();
    var nameLngth = $('.field__email').val().length;
    if(nameLngth <= 1){
        $('.field__email').addClass('.form__error');
    } else {
        $('.field__email').addClass('.form__accept');
    }
});

Почему не срабатывает метод 'length' в консоле выдаёт ошибку: Uncaught TypeError: Cannot read property 'length' of undefined
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
@Stepanya
Потому что
$('.field__email').val()
вернуло undefined
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@justdealman
$('.field__email').blur(function() {
    $(this).removeClass('form__error form__accept');
    var nameLngth = $(this).val().length;
    if(nameLngth <= 1){
        $('.field__email').addClass('form__error');
    } else {
        $('.field__email').addClass('form__accept');
    }
});
Ответ написан
Комментировать
Потому, что выражение $('.field__email').val() возвращает 'undefined'. Это происходит потому, что такого элемента с классом 'field__email' не существует, т. к. строкой выше вы удалили все классы у элементов с классом 'field__email'. Скорее всего, этот код окажется рабочим:

$('.field__email').blur(function(){
    var field = $('.field__email');
    field.removeClass();
    var nameLngth = field.val().length;
    if(nameLngth <= 1){
        field.addClass('.form__error');
    } else {
        field.addClass('.form__accept');
    }
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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