2010-12-11 14 views
0

Ich versuche, einen kurzen Code zu erstellen, um alle Eingabeelemente in einem bestimmten Formular anzusprechen. Immer wenn ein Eingabeelement im Fokus ist, erhalte es seine ID und ändere die Schriftfarbe eines anderen Elements (falls es existiert), dessen ID die Verkettung der ID des Eingabeelements ist, gefolgt von dem Wort "Hilfe".Zieleingabeelemente innerhalb eines Formulars, das jQuery verwendet, ohne manuell aufzurufen

Ich könnte eine Funktion dafür machen, aber ich möchte nicht, dass der HTML-Typ es nennt. Ich möchte nur, dass er das Skript enthält und es funktioniert. Ich habe ihm die Namenskonvention erklärt.

All das sagte der obige Code funktioniert nicht. Kann mir bitte jemand helfen, das zu lösen.

Vielen Dank.

Erzählen Sie mir auch, wenn ich auf diese Weise schrecklich falsch bin, obwohl ich dazu aufgefordert worden bin.

Antwort

4

id (die Variable) ist undefined hier ... es muss eine Zeichenfolge sein, mit .attr() verwenden, wie folgt aus:

$(this).attr("id"); 

... aber die viel einfachere Art und Weise wird mit dem bereits vorhandenen DOM-Eigenschaft .id, gefällt das:

$('#form').find('input').focus(function(){ 
    $('#'+this.id+'Help').addClass('elementHelp'); 
}); 
+0

Ich verstehe, was Sie getan haben, aber ich weiß nicht, warum es nicht funktioniert. Es ist wahrscheinlich etwas sehr dummes, was ich tue. Könnten Sie einen Blick darauf werfen und mir sagen, was falsch ist: http://jsfiddle.net/PVP2j/3/ – Aayush

+0

@Aayush - Doh, meine Schuld, Sie brauchen das '#' Präfix für die ID-Selektor: http: // jsfiddle.net/nick_craver/PVP2j/4/ –

+0

vielen Dank. das funktioniert perfekt. – Aayush

Verwandte Themen