2016-09-10 2 views
1

Ich habe eine Tabelle, die eine Liste der Empfänger für Geschenke enthält. Jeder Empfänger kann ein oder mehrere Geschenke für sie aufgelistet haben. Ich tue dies mit einer verschachtelten Menge von Zeilen (eine verschachtelte Zeile in einer Tabellenzelle pro Geschenk) in einer Tabellenzelle.Überprüfen Sie den Status mehrerer Kontrollkästchen in der geschachtelten Tabellenzeile mit JQuery vor Aktion

Jedes Geschenk hat vier Status (durch Checkboxen angezeigt) von Ausgewählt, Eingecheckt, Ausgeliefert, Geliefert.

Ich muss die Hauptreihe für den Empfänger ausblenden, wenn alle Kontrollkästchen für einen bestimmten Status aktiviert sind.

Wenn also nur die Empfänger angezeigt werden sollen, bei denen ein Geschenk noch nicht eingecheckt ist, möchte ich immer noch Empfänger sehen, bei denen nur ein Geschenk für den Status "Check-In" deaktiviert ist.

Ich habe folgende Zeilen jetzt zu verstecken und zeigen:

if (state === true) { 
     switch(colId) { 
      case "selectedFilter": 
       $('input:checkbox.isSelected:not(:checked)').closest('.trMainData').hide(); 
       break; 
      case "selectedFilterUnchecked": 
       $('input:checkbox.isSelected:checked').closest('.trMainData').hide(); 
       break; 
      case "checkedInFilter": 
       $('input:checkbox.isCheckedIn:not(:checked)').closest('.trMainData').hide(); 
       break; 
      case "checkedInFilterUnchecked": 
       $('input:checkbox.isCheckedIn:checked').closest('.trMainData').hide(); 
       break; 
      case "outForDeliveryFilter": 
       $('input:checkbox.isOutForDelivery:not(:checked)').closest('.trMainData').hide(); 
       break; 
      case "outForDeliveryFilterUnchecked": 
       $('input:checkbox.isOutForDelivery:checked').closest('.trMainData').hide(); 
       break; 
     } 
    } else if (state === false) { 
     $('table tr.trMainData:hidden').show(); 
    } 

Wo der ‚Staat‘ ist der Zustand eines Checkbox Filter durch den Benutzer angeklickt werden (wahr oder falsch) und ‚trMainData‘ ist die Klasse in der Hauptreihe für die Empfänger.

Das Problem ist, dass, wenn ich nur ein Geschenk-Set aus 2 als eingecheckt, dann wird die gesamte Empfängerzeile versteckt ist, einschließlich der Gabe, die in noch nicht geprüft hat.

Jede Hilfe und Anregungen, wie werden immer sehr geschätzt.

Antwort

0

Also, es gibt etwas über das Posten meiner Frage, die mir dann eine gute Idee gibt. Nicht sicher, das ist der beste oder richtige Weg, aber es funktioniert.

Hier ist was ich getan habe.

Also, im Wesentlichen, zuerst verstecke ich jede Zeile, die sogar 1 Element für die Spalte, die ich filtern, überprüft hat. Dann durchsuche ich diese versteckten Spalten und zeige eine von ihnen, die ein Element haben, das angezeigt werden soll, und zeige es erneut an ... grundsätzlich zweimal filtern, aber es funktioniert.

Verwandte Themen