2012-01-31 21 views
10

jaki jest najlepszy sposób sprawdzenia, to lista rozwijana zawiera wartość, która nie jest pusta.Jak sprawdzić rozwijanie ma wartość w jquery?

<select class="dropinput" name="Finish1" id="dropFinish1" tabindex="10" disabled="disabled"> 
    <option value=""></option> 
</select> 

Jak sprawdzić powyższe menu rozwijane nie zawiera żadnych wartości?

+0

Brak wartości (brak elementu

+0

nie zawiera wartości – Beginner

Odpowiedz

15
if($('.dropinput > option[value!=""]').length == 0) { 
    //dropdown contains no non-null options 
} 

Spowoduje to sprawdzenie, czy pole wyboru zawiera zero opcji, które mają wartość inną niż "" (puste).

Więc następujące HTML będą widoczne jako puste w powyższym jQuery:

<select class="dropinput" name="Finish1" id="dropFinish1" tabindex="10" disabled="disabled"> 
    <option value=""></option> 
</select> 

Poniższy HTML będzie nie być postrzegane jako pusty:

<select class="dropinput" name="Finish1" id="dropFinish1" tabindex="10" disabled="disabled"> 
    <option value=""></option> 
    <option value="some value"></option> 
</select> 

JSFiddle demo

2

spróbować

to daje wartość tylko wtedy, gdy ma wartość

$("#dropFinish1 option:selected[value!=""]).val() 
+0

to działa pięknie, ale brakuje ", więc powinien przeczytać' $ ("# dropFinish1 opcja: selected [value! =" "]"). Val() ' –

0
$('.dropinput').text(); 

jeśli zwraca „” to znaczy, że nie ma nic zaznaczone.

var selectedItem = ""; 
$('.dropinput option').each(function(){ 
if($(this).attr('selected') == 'selected'){ 
selectedItem = $(this).val(); 
} 
}): 

jeśli zmienna pozostaje pusta, oznacza to, że nie wybrano żadnej pozycji.

2

Do masz na myśli:

 

var hasOption = true; 
$('.dropinput option').each(function(i, v){  
     var $this = $(this);   
     if($this.val() == '' || $this.size < 1) { 
      hasOption = false; 
     } else { 
      hasOption = true; 
     }   
    }); 
 
Powiązane problemy