2011-10-17 16 views
6

Ho una domanda, come funzione di scrittura per selezionare tutti i chceckbox sul modulo, quando tutti gli ID di casella di controllo partono da alcuni const. stringa, usando puro script java (senza jquery e altri framework)? So come utilizzare ciascuna funzione di JQuery, ma non ho idea di farlo in puro formato JS.My ex.Come posso selezionare tutte le caselle da un modulo utilizzando puro JavaScript (senza framework JS)?

<form id="myId" name="myForm"> 
<input type="checkbox" id="lang_1" value="de"/> DE 
<input type="checkbox" id="lang_2" value="us"/> US 
<input type="checkbox" id="lang_3" value="ru"/> RU 
<input type="button" onclick="Select();" value="Select all"/> 
</form> 

risposta

1

Nel tuo caso:

for (i = 1; i<3; i++) { 
    document.getElementById('lang_'+i).checked = true; 
} 
+1

Un elemento diverso da casella di controllo può avere un attributo verificato. Prendi in considerazione la soluzione proposta da James – Kumar

+0

Sì, o non hai affatto un attributo verificato, ho appena risposto all'esempio. La risposta di James è decisamente più accurata. – gregseth

37

Si potrebbe utilizzare getElementsByTagName per ottenere tutti gli elementi input:

var inputs = document.getElementsByTagName("input"); 
for(var i = 0; i < inputs.length; i++) { 
    if(inputs[i].type == "checkbox") { 
     inputs[i].checked = true; 
    } 
} 

Ecco un example di questo. Se vi interessa soltanto i browser più recenti, è possibile utilizzare querySelectorAll:

var inputs = document.querySelectorAll("input[type='checkbox']"); 
for(var i = 0; i < inputs.length; i++) { 
    inputs[i].checked = true; 
} 

E un example di quello. Per inciso, hai menzionato nella tua domanda che quando si utilizza jQuery puoi farlo usando each. Non è necessario utilizzare each, come la maggior parte dei metodi di jQuery operano su tutti gli elementi del gruppo appaiato, in modo da poter fare in una sola riga:

$("input[type='checkbox']").prop("checked", true); 
+0

che in pratica molto lo riassume – david

+0

Una delle risposte più complete che ho visto. Bello. – DiamondDrake

Problemi correlati