2016-04-18 11 views
0

ich diese vereinfachte HTML-Struktur haben:So prüfen Sie mehrere auswählen, ob ausgewählt oder nicht?

<div id="kurir_list"> 
    <div class="row"> 
     <div class="col-sm-6"> 
       <select disabled class="tarif"> 
       ... 
       </select> 
      </div> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-sm-6"> 
       <select disabled class="tarif"> 
       ... 
       </select> 
      </div> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-sm-6"> 
       <select disabled class="tarif"> 
       ... 
       </select> 
      </div> 
     </div> 
    </div> 
</div> 

und ich habe diese jquery zu:

$(".tarif").change(function() { 
    if (!$(".tarif").is(':disabled')) { 
     alert ("hello world"); 

     if ($(".tarif").val() !== "") { 
      alert ("hello earth"); 
     } 
    } 
}); 

warum "Hallo Erde" nie oben zeigt, obwohl alle .tarif Option ausgewählt hat? wie man die Validierung ob .tarif hat leere Auswahl oder nicht? danke

Antwort

1

Sie können .filter() Methode mit length Eigenschaft verwenden.

//Cache elements 
var tarif = $(".tarif"); 

tarif.change(function() { 
    //Filter not disabled elements 
    var notDisabledTarif = tarif.filter('not(:disabled)'); 

    //There is atleast 1 element which is not disabled 
    if(notDisabledTarif.length){ 
     alert ("hello world"); 

     //Filter elements having value 
     var elementHavingValue = notDisabledTarif.filter(function(){ 
      return $(this).val() !== ""; 
     }); 

     if (elementHavingValue.length) { 
      alert ("hello earth"); 
     } 
    } 
}); 
+0

bro, das Problem ist, ich muss alle '.tarif' überprüfen, ob es deaktiviert oder leeren Wert hat, jedes Mal wenn einer von' .tarif' geändert wird. nicht nur aktuelle Auswahl. aber alle ausgewählten Elemente unter '# kurir_list' –

+0

@RobertHanson, nur zur Klarstellung, Sie müssen jedes ausgewählte Element hat Wert überprüft und nicht deaktiviert, oder? – Satpal

+0

ja, das ist richtig –

Verwandte Themen