2016-04-12 18 views
0

Ich versuche, eine Seite Filter erstellen div zeigen auszublenden basierend auf Dropdown-Werte kombinieren, für die einige Seite hatte zwei Auswahlboxen und einige hatten drei Auswahlboxen Kombination und nach jeder Wert aus der Auswahl Wählen Sie Boxen aus, die ein bestimmtes div ein- oder ausblenden soll. Ich hatte etwas Glück, um am Punkt zu erreichen, aber ich konnte nicht weiter kommen. Bitte helfen Sie mir.mehrere Auswahlbox Filter einblenden ausblenden div

$(".submit-button-filter").click(function() { 
     $(function(){ 

     var places = $("#places").val(); 
     var zones = $("#zones").val(); 
     var stories = $("#stories").val(); 
     var year = $("#year").val(); 
     var month = $("#month").val(); 
     var filters= [places, zones, stories, year, month]; 
     console.log(filters); 

     if(year == 'Year' && month == 'Month'){ 
      alert("Select Filer value"); 
     } 
     else if(year == 'Year' || month == 'Month'){ 
      alert("Select combine Filer value"); 
     } 
     else{ 
      $('.row-sort').hide(); 

     } 

     }); 
    }); 

Here is fiddle for my code

Antwort

0

Sie auf den Dropdown ausgewählten Wert sind das Abrufen aber erste Option in der select-Tag nicht Wert-Attribut versuchen so unter Code

var year = $("#year :selected").text(); 
var month = $("#month :selected").text(); 
+0

$ ("# places"), $ ("# Zonen"), $ ("# Geschichten"), $ ("# Jahr"), $ (“. #month ") wenn eines dieser Elemente ist auch Select-Tag dann versuchen, wie oben –

0

Sie müssen nur durch die einzelnen div iterieren mit Klasse row-sort und überprüfen Sie, ob die ausgewählten Optionen als Klassen in diesen divs verfügbar sind. Wenn ja, zeige sie einfach.

$(".submit-button-filter").click(function() { 
     $('.row-sort').hide(); // hide all divs 

     var year = $("#year").val(); 
     var month = $("#month").val(); 
     var filters= [year, month]; 

     if(year == 'Year' && month == 'Month'){ 
      alert("Select Filer value"); 
     } 
     else if(year == 'Year' || month == 'Month'){ 
      alert("Select combine Filer value"); 
     } 
     else 
     { 
      $('.row-sort').each(function() 
      { 
      if($(this).hasClasses(filters)) 
       $(this).show(); 
      });   
     } 
    }); 

// user defined function to check for multiple classes using hasClass 
$.fn.extend({ 
     hasClasses: function (selectors) { 
     var self = this; 
     for (var i in selectors) { 
      if ($(self).hasClass(selectors[i])) 
       return true; 
     } 
     return false; 
    } 
}); 

Arbeitsbeispiel: https://jsfiddle.net/DinoMyte/p4ow1h7f/5/

+0

sehr dank Dino für Ihre schnelle Hilfe und jetzt konnte ich das Kombinationsfilter aus dem Code erstellen, aber ein neues Problem konfrontiert, dass, wenn ich wollte, um eine Warnung anzuzeigen, wenn der Filterwert nicht übereinstimmt, aber die Warnung kommt auch für den übereinstimmenden Wert Hier ist die aktualisierte Geige für sie https://jsfiddle.net/mohit7189/p4ow1h7f/12/ – Mohit7189

+0

Ich konnte ein Szenario nicht wo replizieren Ich habe die Warnung m auch wenn gültige Werte ausgewählt wurden. Können Sie mir sagen, welche Werte Sie aus dem Drop-down ausgewählt haben, was den irrelevanten Alarm auslöst? – DinoMyte

+0

eigentlich war es eine alarmnachricht, die ich in einer spanne drehe, egal unter welchen bedingungen die mesage immer noch kommt – Mohit7189

Verwandte Themen