2009-12-24 12 views
20

come posso calcolare il numero di checkbox che un utente ha controllato usando jquery?calcola il numero di caselle hml selezionate con jquery

quello che voglio fare è limitare il numero di check per checkbox in un modulo a 10 per esempio e quando un utente supera questo intervallo visualizza un messaggio di avviso.

+0

possibile duplicato di [Come ottenere un conteggio di tutte le caselle di controllo selezionate in una pagina] (http: // stackove rflow.com/questions/872296/how-to-get-a-count-of-all-checked-checkboxes-on-a-page) – gcochard

risposta

60

Ci sono diversi metodi per farlo:

Metodo 1:

alert($('.checkbox_class_here:checked').size()); 

Metodo 2:

alert($('input[name=checkbox_name]').attr('checked')); 

Metodo: 3

alert($(":checkbox:checked").length); 
+1

Buona risposta, ma non dovresti usare .checkbox_id_here invece di #checkbox_id_here? Se usi #checkbox_id_here, size() sarà sempre 1, il che sarà un po 'inutile perché può esserci un solo ID univoco. Ha senso riferirsi invece alle classi, dove ci possono essere più caselle di controllo –

+0

@Bug Magnet: Grazie per aver segnalato l'errore di battitura, risolto :) – Sarfraz

+1

'($ ('. Pairing-cbk: checked'). Size()); 'non ha funzionato ma' alert ($ ('. pairing-cbk: checked'). size()); 'ha funzionato per la ragione sopra menzionata da @James Wiseman – Amitabh

17

Questo dovrebbe funzionare:

alert($("input:checkbox:checked").length); 
+0

$ ("input: checkbox: checked"). Length; con uno spazio tra la checkbox e: checked non funzionerà mi stava succedendo. –

+1

Ecco perché sarebbe in cerca di discendenti di "input: checkbox' che erano' checked', non per 'input: checkbox' che sono essi stessi controllati. Lo spazio stabilisce una relazione antenato/discendente. –

+0

Grazie per l'input in realtà non lo sapevo. –

2

Se nessuno dei metodi di cui sopra lavoro, probabilmente non sono ancora importati jQuery. Per importare jQuery, incolla questo codice nello <head> del tuo codice HTML.

<script src="//code.jquery.com/jquery-1.10.2.js"></script> 

in realtà ho avuto lo stesso problema durante la creazione di una pagina di prodotto ordinamento, e volevo che contare il numero di prodotti nel carrello nella pagina di conferma dell'ordine. Ho fatto riferimento a questo post e ho provato tutti i metodi. Poi ho scoperto che non ho importato jQuery, quindi lo $(':checkbox:checked') non ha funzionato.

0

si dovrebbe utilizzare

alert($("input:checkbox:checked").length); 

o

alert($(".checkbox-class:checked").length); 

se si dispone di più forme in un'unica pagina

.size() (metodo numero 1 nella corrente risposta accettata) è deprecato since jQuery 1.8

Problemi correlati