2016-06-18 2 views
-2

Этот код не работает. Консоль говорит n.blur is not a function.jQuery - n.blur не является функцией

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'); 
    } 
}); 
+4

Вы не определяете 'formElement' до события' click', как вы ожидаете его работы? –

ответ

2

Там нет blur метода, так как в этой точке formElement является строка:

var name = '', 
    formElement = '', 
    ... 
+0

Что делать? .... –

+0

@HarardDype Мы не можем сказать вам, что делать. Ваш код не имеет никакого смысла, и вы ничего нам не сказали, кроме «Этот код не работает». Расскажите, пожалуйста, как вы должны работать. – JLRishe

0

Я не думаю, что вам нужны .click() функцию и можете прикрепить blur() ко всему .FORM входов:

$('.form input').blur(function() { 
    formElement = $(this); 
    if(formElement.val().length === 0) { 
     formElement.closest('.form-group').addClass('has-error'); 
    } else { 
     formElement.closest('.form-group').removeClass('has-error'); 
    } 
}); 

Это должно достичь такого же эффекта.

Смежные вопросы