2010-09-14 11 views

Odpowiedz

78

Można użyć the :selected selector aby je zaznaczyć, a następnie uzyskać .length, tak:

var count = $("#mySelect :selected").length; 
+2

Po pierwsze jest lepiej, ponieważ '$ (" # mySelect "). Val()' ma wartość null, jeśli nie wybrano żadnej opcji. – svinto

+0

@svinto - dobry połów, nadpisuję '.val()', aby zwrócić pustą tablicę w tym przypadku w mojej kompilacji, IMO to * powinno * zrobić to domyślnie .. to jest sprawdzone bardziej przydatne dla mnie, ale zobaczymy jeśli kiedykolwiek się zmieni. –

+0

Ya, Pierwsza jest lepsza i dała poprawny wynik w mojej sytuacji. W każdym razie dzięki. –

3

var n = $("input:checked").length; zobaczyć więcej szczegółów: http://api.jquery.com/checked-selector/

+1

I nie sądzę, że to jest to, co miał na myśli PO, ale co ważniejsze, będzie on pasował do każdego '' tym przycisków radiowych, więc należy zachować ostrożność podczas używając samego ': checked'. –

3

można uzyskać liczbę wybranych pozycji w multiselect z następującymi:

$('#selectList :selected').length 

Gdzie #selectList jest identyfikatorem twojego.

+1

'.count()' nie jest funkcją jQuery :) '.size()' jest, ale jest po prostu wrapperem dla '.length', może równie dobrze użyć go bezpośrednio. –

+0

@Nick, dzięki. Masz całkowitą rację ... – halfdan

1

Do wyboru Używam:

$('input[name="InputName"]:checked').size() 
Powiązane problemy