2016-06-18 9 views
-2

Dieser Code funktioniert nicht. Die Konsole sagt n.blur is not a function.jQuery - n.blur ist keine Funktion

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

Sie definieren 'formElement' nicht bis zum' click' Event, wie erwarten Sie, dass es funktioniert? –

Antwort

2

Es gibt keine blur Verfahren an diesem Punkt seit formElement eine Zeichenfolge ist:

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

Was zu tun? .... –

+0

@HarardDype Wir können Ihnen nicht sagen, was zu tun ist. Ihr Code macht keinen Sinn und Sie haben uns nichts über "Dieser Code funktioniert nicht" gesagt. Bitte sagen Sie uns, wie Sie es _want_ arbeiten möchten. – JLRishe

0

Ich denke nicht, Sie Ihre .click() Funktion benötigen und können Ihre blur() allen .form Eingänge anschließen:

$('.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'); 
    } 
}); 

Das sollte den gleichen Effekt erzielen.

Verwandte Themen