2016-08-01 8 views
0

Hier ist mein HTML-Code:jQuery Eingang gefüllt detect

<label for="input">Name</label> 
<input type="text" id="input"/> 

Ich wollte Skript machen, das Label verbirgt, wenn der Eingang etwas darin gefüllt hat. Ich habe das gemacht, aber es macht nichts. Warum?

if ($("input").val().length !== 0) { 
    $(this).siblings().hide(); 
} 

Antwort

0

Sie tatsächlich beziehen sich nicht auf dieses Eingabefeld, wenn $ (dies muss) .sibl ...
(this standardmäßig Window)
als es sich um eine Funktion oder irgendetwas nicht gewickelt wird.
Siehe auch in der zweiten Zeile als $('#input').siblings().hide().

-1

Du <input type="text" id="input"/> für $("input").val() verwenden, aber es fehlt ‚#‘ für id-Selektor als $("#input").val()

+0

das ist kein Problem. HTML-Elemente können auch über ihren Tag-Namen aufgerufen werden. –

+0

ja du hast Recht, das Problem, das hier mit verursacht, ist die Verwendung von $ (this). Danke dafür, es zu zeigen –

0

Sie eine .each Funktion am Eingang suchen verwenden können und das Etikett zu verstecken, wenn es leer ist mit dem folgenden:

$("#input").each(function() { 
    if (!$(this).val()) { 
    $(this).siblings().hide(); 
    } 
}); 
+0

Das funktioniert nicht http://codepen.io/anon/pen/EyZPdV?editors=1010 –

+0

@Karolina Ticha funktioniert es in den von Ihnen bereitgestellten Code-Link. Wie Sie sehen können, ist die Bezeichnung "Name" ausgeblendet. – Josh