2011-10-17 17 views
6

Tengo una pregunta, ¿cómo escribir la función para seleccionar todos los cuadros en el formulario, cuando toda la casilla de verificación Id de algún const. cadena, utilizando script java puro (sin jquery y otros marcos)? Sé cómo hacerlo utilizando cada función de JQuery, pero no tengo idea de cómo hacerlo en formato JS.My puro, ex.¿Cómo puedo seleccionar todas las casillas de verificación de un formulario usando JavaScript puro (sin marcos 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> 

Respuesta

1

En su caso:

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

Un elemento distinto de la casilla de verificación puede tener un atributo verificado. Considere la solución propuesta por James – Kumar

+0

Sí, o no tiene un atributo verificado en absoluto, acabo de responder al ejemplo. La respuesta de James es definitivamente más completa. – gregseth

37

Usted podría utilizar getElementsByTagName para obtener todos los elementos input:

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

He aquí un example de ello. Si sólo se preocupan por los nuevos navegadores, se puede usar querySelectorAll:

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

Y un example de aquél. Como comentario aparte, usted mencionó en su pregunta que al usar jQuery puede hacer esto usando each. No es necesario utilizar each, como la mayoría de los métodos de jQuery operan en todos los elementos en el conjunto combinado, por lo que se puede hacer en una sola línea:

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

que básicamente lo resume – david

+0

Una de las respuestas más exhaustivas que he visto. Bonito. – DiamondDrake

Cuestiones relacionadas