sustituir el valor de variables
Hola a todos, tengo un problema que debe ser una tontería pero no sé como resolverlo.
Tengo en mi html varios checkbox de nombre "check0", "check1", "check2" etc.. hasta un número n que conozco.
Desde javascript quiero saber cual está marcado y cual no
for (int i =0;i<= n; i++)
if (window.document.forms[0].checkXXXX.checked == true)
...
El problema es que donde pongo las XXXX no sé poner el código correcto para sustituir el valor de "i" y así el bucle me haga algo similar a esto:
if (window.document.forms[0].check1.checked == ..)
if (window.document.forms[0].check2.checked == ..
¿me podéis ayudar?
Muchas gracias.
Tengo en mi html varios checkbox de nombre "check0", "check1", "check2" etc.. hasta un número n que conozco.
Desde javascript quiero saber cual está marcado y cual no
for (int i =0;i<= n; i++)
if (window.document.forms[0].checkXXXX.checked == true)
...
El problema es que donde pongo las XXXX no sé poner el código correcto para sustituir el valor de "i" y así el bucle me haga algo similar a esto:
if (window.document.forms[0].check1.checked == ..)
if (window.document.forms[0].check2.checked == ..
¿me podéis ayudar?
Muchas gracias.
Lo que tienes que hacer es poner el mismo nombre
a todos los checkboxes para crear un array y poder
acceder mediante el índice. Un ejemplo:
<html>
<head>
<title></title>
<script language="javascript">
function estadoChecks(){
for(var i=0;i<=2;i++){
window.alert("check[" + i.toString() + "].checked=" + window.document.forms[0].check[i].checked.toString());
}
}
</script>
</head>
<body>
<form>
<input type="checkbox" name="check" value="0">check[0]
<input type="checkbox" name="check" value="1">check[1]
<input type="checkbox" name="check" value="2">check[2]<br>
<input type="button" value="comprobar estado" onclick="estadoChecks();"
</form>
</body>
</html>
a todos los checkboxes para crear un array y poder
acceder mediante el índice. Un ejemplo:
<html>
<head>
<title></title>
<script language="javascript">
function estadoChecks(){
for(var i=0;i<=2;i++){
window.alert("check[" + i.toString() + "].checked=" + window.document.forms[0].check[i].checked.toString());
}
}
</script>
</head>
<body>
<form>
<input type="checkbox" name="check" value="0">check[0]
<input type="checkbox" name="check" value="1">check[1]
<input type="checkbox" name="check" value="2">check[2]<br>
<input type="button" value="comprobar estado" onclick="estadoChecks();"
</form>
</body>
</html>
Muchas gracias por tu ayuda, pero no lo puedo hacer así ya que también tengo que recibir los valores de los checkbox desde un servlet, y si no los llamo con nombre diferente, solo recibo aquellos que están marcados y no sé cuales son ya que los desmarcados no me llegan.
Estuve peleandome con ello y al final tuve que darles distinto nombre.
Estuve peleandome con ello y al final tuve que darles distinto nombre.
Pues entonces habrá que utilizar la función eval(). A
esta función se le envía una cadena de texto que es
código javascript. Ejemplo:
<html>
<head>
<title></title>
<script language="javascript">
function estadoChecks(){
for(var i=1;i<=3;i++){
window.alert("check" + i.toString() + ".checked=" + eval("window.document.forms[0].check" + i.toString() + ".checked.toString()"));
}
}
</script>
</head>
<body>
<form>
<input type="checkbox" name="check1" value="0">check1
<input type="checkbox" name="check2" value="1">check2
<input type="checkbox" name="check3" value="2">check3<br>
<input type="button" value="comprobar estado" onclick="estadoChecks();"
</form>
</body>
</html>
esta función se le envía una cadena de texto que es
código javascript. Ejemplo:
<html>
<head>
<title></title>
<script language="javascript">
function estadoChecks(){
for(var i=1;i<=3;i++){
window.alert("check" + i.toString() + ".checked=" + eval("window.document.forms[0].check" + i.toString() + ".checked.toString()"));
}
}
</script>
</head>
<body>
<form>
<input type="checkbox" name="check1" value="0">check1
<input type="checkbox" name="check2" value="1">check2
<input type="checkbox" name="check3" value="2">check3<br>
<input type="button" value="comprobar estado" onclick="estadoChecks();"
</form>
</body>
</html>