2011-02-04 2 views
10

Questa potrebbe essere la domanda più facile della giornata.Seleziona tutte le caselle di controllo con ID simili usando Jquery?

Ho un gruppo di caselle di controllo con l'identificazione di simili (tutti iniziano con someid_ come someid_0, someid_1 ..)

voglio ottenere tutte le caselle di controllo checked.

Ho provato $('input:checkbox[id^="someid_"]:checked') ma non funziona?

+0

il codice sembra corretto. quale versione di jQuery stai usando? puoi pubblicare un esempio completo da qualche parte online? – Anurag

+0

verifica che il codice demo sia corretto controlla anche le versioni jquery! – Harish

+0

Penso che il problema sia un'altra cosa .. –

risposta

25

questo codice sta lavorando controllo demo

http://jsfiddle.net/csTpG/

Markup

<input type="checkbox" id="someid_1" checked/> 
<input type="checkbox" id="someid_2" checked/> 
<input type="checkbox" id="someid_3" checked/> 
<input type="checkbox" id="someid_4"/> 

jQuery

var n = $('input:checkbox[id^="someid_"]:checked').length; 
alert(n); // count of checked checkboxes 

$('input:checkbox[id^="someid_"]:checked').each(function(){ 
    alert($(this).attr("id"));}); 
+0

non funziona .... –

+3

il codice funziona. –

+1

penso che vogliano selezionare tutte le caselle di controllo che hanno un ID simile per non trovare l'ID della casella di controllo selezionato – Vivek

0

io non sono sicuro se si può fare una ricerca su l'attributo ID . di solito restituisce solo un valore. È possibile impostare la classe a some_0 invece e poi ricerca oppure utilizzare un attributo personalizzato come

<input type=checkbox customattr=some_1> 
-1

provare questo ...

$('input:checkbox').filter('#someid').attr(":checked") 
+0

Perché dovresti selezionare tutte le caselle di controllo e quindi filtrare per ID? Anche questo codice non sta recuperando le caselle spuntate, sta recuperando l'attributo ": checked" da '# someid'. Volevi scrivere '$ ('# someid)' –

0

il codice si è tentato è assolutamente corretto, può b il codice corse innanzi l'analisi gli elementi richiesti in modo da provare,

$(document).ready(function(){$('input:checkbox[id^="someid_"]:checked')}) 
1
<head> 
    <script type="text/javascript" src="../js/jquery.js"></script> 
    <script type="text/javascript"> 
     var isChecked = false; 

     function allSelected() 
     { 
      // this line is for toggle the check 
      isChecked = !isChecked; 

      //below line refers to 'jpCheckbox' class 
      $('input:checkbox.jpCheckbox').attr('checked',isChecked); 

      //OR, 
      //$('input:checkbox.jpCheckbox').attr('checked','checked'); 
     } 
    </script> 
</head> 

<body> 
    <form> 
     Select All<input type="checkbox" id="selectAllCheckbox" onclick="allSelected()" /><br/> 

     A<input type="checkbox" id="jpCheckbox" class="jpCheckbox" /><br/> 
     B<input type="checkbox" id="jpCheckbox" class="jpCheckbox" /><br/> 
     C<input type="checkbox" id="jpCheckbox" class="jpCheckbox" /><br/> 
    </form> 
</body> 
+0

Ciao, prova questo approccio, questo funziona per selezionare/deselezionare tutte le caselle multiple con la stessa classe sullo stesso modulo. –