2013-01-07 18 views
31

Ho diverse caselle di controllo di input (il nome è lo stesso per l'array di invio sul server).Ottieni i valori della casella di controllo usando il nome della casella di controllo

Quindi, ho bisogno di ottenere ogni valore di questa casella di controllo e voglio usare come nomi della casella di controllo selettore, questo non funziona, aiuto per favore.

<form> 
    <input type="checkbox" name="bla[]" value="1" /> 
    <input type="checkbox" name="bla[]" value="2" /> 
</form> 

JS:

$(document).ready(function() {  

    $("input[name=bla]").each(function() { 
     alert($(this).val()); 
    }); 

}); 

DEMO

+0

Il codice funziona, se si rimuove [] nel param name significa bla [] per bla –

risposta

53

si selezionano ingressi con attributo name "bla", ma gli ingressi hanno "bla[]" attributo name.

$("input[name='bla[]']").each(function() { 

http://jsfiddle.net/26axX/

+0

Grazie mille, grazie a tutti, accetterò questa risposta :) – RIKI

+0

@OTARIKI Siete i benvenuti :) – undefined

+1

Aggiungi: selezionato per trovare solo caselle selezionate come $ ("input [nome = 'bla []']: selezionato") .each (function() { – Satish

3
$("input[name='bla[]']").each(function() { 
    alert($(this).val()); 
}); 
4

come è stato detto più volte, è necessario modificare il selettore per

$("input[name='bla[]']") 

Ma voglio aggiungere, è necessario usare singolo o doppie virgolette quando si utilizza [] nel selettore.

11

È necessario includere anche le parentesi. . .

<input type="checkbox" name="bla[]" value="1" /> 

quindi riferimento a dovrebbe essere come essere name='bla[]'

$(document).ready(function() { 

    $("input[name='bla[]']").each(function() { 
     alert($(this).val()); 
    }); 

}); 
2

// ottenere valori di caselle di controllo che utilizzano il nome di casella

<head> 
     <script> 
     function getCheckBoxValues(){ 
      $('[name="checkname"]').each(function(){ 
       alert($(this).val()); 
      }); 
     } 
     </script> 
    </head> 
    <body> 
     <input type="checkbox" name="checkname" value='1'/> 
     <input type="checkbox" name="checkname" value='2'/> 
     <input type="checkbox" name="checkname" value='3'/> 
     <input type="button" value="CheckBoxValues" onclick="getCheckBoxValues()"/> 
    </body> 

// ottiene solo la strega valori vengono controllati

function getCheckBoxValues(){ 
     $('[name="checkname"]').each(function(){ 
      if($(this).prop('checked') == true){ 
       alert($(this).val()); 
      } 
     }); 
    } 
4

Vorrei aggiungere che se si sta cercando di ottenere tutte le caselle di controllo con quel nome che sono stati selezionati, si desidera utilizzare la seguente sintassi:

$("[name='bla[]']:checked").each(function() { 
    // do stuff 
}); 

assicurarsi che non v'è un spazio tra la chiusura ] e :checked

+1

Buono a vedere usando il selettore ': checked' ed evitando un'ulteriore istruzione' if' – hmd

3

Se si desidera ottenere un elenco di tutti i valori delle caselle di controllo selezionate (ad es. per inviargli il presente come una lista in chiamata uno AJAX al server), si potrebbe ottenere tale elenco con:

var list = $("input[name='bla[]']:checked").map(function() { 
    return this.value; 
}).get(); 
+0

Soluzione perfetta (y) +1 –

2
$('[name="CheckboxName"]:checked').each(function() { 
    // do stuff 
}); 
Problemi correlati