JavaScript - Uncaught TypeError: Cannot read property "0" of undefined

 
Vista:
Imágen de perfil de david

Uncaught TypeError: Cannot read property "0" of undefined

Publicado por david (2 intervenciones) el 21/04/2015 01:11:15
soy nuevo con js y no se que significa ese error sale en la consola de google mi código es el siguiente

Uncaught TypeError: Cannot read property '0' of undefined

mi código es el siguiente genero los checks dinamicamente y quería validar con js dinamicamente si alguien me pudiera ayudar o aconsejar se los agradeceria mucho

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<%
	int intNumControles = 5;
%>
<script type="text/javascript" language="javascript">
	function IrAUrl(NumControles)
		{ // funcion IrAUrl(TOP)
		 var controlesSeleccionados = 0;
 
			for (var i = 0; i<NumControles; i++)
			 { // ciclo para validar el numero de controles (TOP)
				//alert("letra" + i);
			 	if (document.frmPrincipal.chck[i].checked==true)
				  { // si algun control esta checado (TOP)
					controlesSeleccionados++;
				  } // si algun control esta checado (BOTTOM)*/
			 } // ciclo para validar el numero de controles (BOTTOM)
			 if (controlesSeleccionados < 2)
			   { // si los controles son menos de dos seleccionados (TOP)
				alert("debe seleccionar almenos dos controles");
					//document.frmPrincipal.chck1.focus();
					return false;
			   } // si los controles son menos de dos seleccionados (BOTTOM)
			 else
			  {
				  return true;
			  }
		} // funcion IrAUrl(BOTTOM)
</script>
</head>
 
<body>
<form name="frmPrincipal" action="java2.jsp" method="post" onSubmit="return IrAUrl(<%= intNumControles %>)">
<%
	for(int i=0;i<intNumControles;i++)
	 { //imprime el numero de controles establecido (TOP)
%>
		numero <%= i %><input type="checkbox" name="chck<%= i %>" value="<%= i %>" />
<%
	 } //imprime el numero de controles establecido (BOTTON)
%>
<input name="btnAccion" type="submit" />
</form>
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Uncaught TypeError: Cannot read property "0" of undefined

Publicado por Vainas (258 intervenciones) el 22/04/2015 13:31:46
Buenas:

En chrome suele venir tambien la linea que da el problema. En el lado derecho de donde sale el error, asi se puede saber un poco mas en realidad donde falla. De todas formas tengo mis conclusiones. El error viene a decir algo asi como que no puede leer una propiedad de un objeto si ese objeto es null o no existe. Ahora te digo lo que yo veo:

En tu codigo jsp tienes esto:

1
numero <%= i %><input type="checkbox" name="chck<%= i %>" value="<%= i %>" />


es decir que asignas a los checbox's un nombre de la siguiente manera:

name=chck0
name=chck1
...

Si lo que quieres es tener un array tendras simplemente que poner

name=chck

con lo que esta linea en js no te dara el fallo (creo que es esta la que da el fallo):

1
if (document.frmPrincipal.chck[i].checked==true)


Extra:

Ese if, depues de que funcione, lo puedes dejar en:

1
if (document.frmPrincipal.chck[i].checked)


Espero que funcione. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de david

Uncaught TypeError: Cannot read property "0" of undefined

Publicado por david (2 intervenciones) el 23/04/2015 01:26:01
muchas gracias lo hice como menciona, modificando esa linea al nombrar a los checbox's y ya funciona el código muchas gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar