2010-12-27 13 views
0

Ich habe Bearbeitungsschaltfläche in der letzten Zelle der Tabelle. Wenn ich darauf klicke, überprüfe ich Eingaben, wenn etwas schief geht. Ich füge den notwendigen Eingaben eine Fehlerklasse hinzu. Wenn der Benutzer Fehler korrigiert und die Bearbeitungsschaltfläche erneut drückt, möchte ich die Fehlerklasse der aktuellen Zeile entfernen. aber nicht aus der ganzen Reihe. Wie es geht?jquery removeClass in der aktuellen Zeile

+0

Können Sie uns einen Ausschnitt der Zeile/Tabelle zeigen? Mein erster Instinkt ist es, '.closes()' zu verwenden und die '' zu erhalten und dann wieder in den Baum zu gehen und Eingangselemente von innen zu finden, aber ohne den Code zu sehen, rate ich nur. –

Antwort

2

Im Click-Handler:

$(this).closest('tr').removeClass('errorClass'); 

Oder wenn es von den 'Input' Elemente war:

$(this).closest('tr').find(':input').removeClass('errorClass'); 
+0

Ihr Code hat es geschafft :-) $ (con) .closes ('tr'). Find ('. Input-validation-error'). RemoveClass ('input-validation-error'); – AEMLoviji

+0

@AEMLoviji: Schön, dass es geholfen hat. – user113716

1

Ihre Click-Handler bearbeiten Knopf könnte wie folgt aussehen:

$("selector_for_table tr input[name=edit]").click(function() { 
    var row = $(this).closest('tr'); 
    if (everythingIsValid()) { 
     row.removeClass('invalid'); 
    } 
    else { 
     row.addClass('invalid'); 
    } 
}); 

Das verwendet closest, um das erste übergeordnete Element der angeklickten Schaltfläche zu finden, das eine tr ist .

... obwohl Sie bei delegate für diese aussehen könnte, wenn Sie ein up-to-date mit jQuery sind:

$("selector_for_table").delegate('input[name=edit]', 'click', function() { 
    var row = $(this).closest('tr'); 
    if (everythingIsValid()) { 
     row.removeClass('invalid'); 
    } 
    else { 
     row.addClass('invalid'); 
    } 
}); 

... wenn die Zeilen dynamisch sind (zB wenn Sie hinzufügen oder entferne sie). delegate legt nur einen Handler für das Elternelement fest und überwacht dann, ob das Ereignis platzt. Wenn es das Ereignis sieht und das Quellelement des Ereignisses mit dem angegebenen Selektor übereinstimmt, wird der Handler ausgelöst.

+0

'.closes ('row')' sollte '.closes ('tr')' sein, 'removeClassName/addClassname' sollte' removeClass/addClass' sein. ; o) – user113716

+0

+1 ja ich stimme mit patrick dw überein. aber Algorithmus ist richtig :-) – AEMLoviji

+0

@patrick: Danke. Was ich bekomme, wenn ich die Dinge nicht lese. :-) –

Verwandte Themen