2010-03-05 4 views
8

Sto provando a vedere se un'opzione è stata selezionata in una selectbox e in caso contrario, voglio che avvisi una stringa. Mi riferivo a questo link (Check if option is selected with jQuery, if not select a default), ma non funziona.Come posso verificare se non è stata selezionata alcuna opzione in una selectbox usando jQuery?

Ecco il mio codice:

<select id="language" name="language"> 
    <option value=""></option> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
</select> 

if(!$("#language option:selected").length) { 
    alert('no option is selected'); 
} 

ho praticamente copiato la risposta legata, ma non è ancora funzionante. Cosa mi manca?

risposta

15

Un'altra strada da percorrere è:

if($("#language").attr("selectedIndex") == 0) { 
    alert("You haven't selected anything!"); 
    } 

esempio Lavorare in: http://jsbin.com/eluki3/edit

+0

Grazie mille! – zeckdude

3
if ($("#language option:selected").val() === "") 
{ 
    alert("No items selected"); 
} 

o semplicemente

if ($("#language").val() === "") 
{ 
    alert("No items selected"); 
} 
+0

necessario stare attenti se l'HTML è '

5

forse perché la prima è selezionata per impostazione predefinita.

provare a utilizzare

if($('#language :selected').text() == ''){ 
    alert('no option is selected'); 
} 
0

avete messo il codice jQuery all'interno di un

$(function() { });

?

Deve essere valutato dopo che il DOM è pronto.

0

ho risolto lo stesso problema utilizzando:

if ($('#mySelector option:selected').get().length>0) { 
    //code 
} else ...