Frosty88
@Frosty88

При запуске кода ошибка: n.blur is not a function (jQuery)?

Есть код, он смотрит, при нажатии на input с определенным значением name, сохраняет это значение в переменную, а затем добавляет в другую что бы далее использовать ее. При добавлении в вторую переменную она используется для определения blur на input'е.

В консоли выдает ошибку: n.blur is not a function
Как быть?

Вот код:
var name = '',
          formElement = '',
          fullname = $('.form input[name="user"]'),
          email = $('.form input[name="pass"]');

      $('.form input').click(function() {
        name = $(this).attr('name');
        formElement = $('.form input[name="'+name+'"]');
      });

      formElement.blur(function() {
        if(formElement.val().length === 0) {
          formElement.closest('.form-group').addClass('has-error');
        } else {
          formElement.closest('.form-group').removeClass('has-error');
        }
      });
  • Вопрос задан
  • 276 просмотров
Решения вопроса 1
Bowen
@Bowen
Японский бог
Я не совсем понял что вы пытаетесь сделать, но, могу предложить вам сделать так:
$('.form input').on({
    'focusin': function(){
        // console.log(this.value);
    },
    'focusout': function(){
        return $(this).closest('.form-group').toggleClass('has-error', !this.value.length);
    }
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@lasmaster
Вся сила в самообразовании
У Вас изначально formElement = ''; а потом Вы пытаетесь на пустую строку навесить событие formElement.blur(function() {...}); Так же к слову: можно вынести formElement.closest('.form-group') в отдельную переменную и ее использовать, т.к. взятие селектора в jQuery происходит более рессурсозатратно нежели обращения к переменной.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы