Foros del Web » Programando para Internet » Javascript »

Error cannot read property 'checked' of undefined

Estas en el tema de Error cannot read property 'checked' of undefined en el foro de Javascript en Foros del Web. Hola buenos dias estoy tratando de realizar una funsion para saber que checkbox estan chequeados y cuales no pero resulta que me sale este error ...
  #1 (permalink)  
Antiguo 10/09/2011, 09:21
 
Fecha de Ingreso: septiembre-2011
Ubicación: Bogota
Mensajes: 31
Antigüedad: 12 años, 8 meses
Puntos: 0
Exclamación Error cannot read property 'checked' of undefined

Hola buenos dias estoy tratando de realizar una funsion para saber que checkbox estan chequeados y cuales no pero resulta que me sale este error en el depurador del navegador

error cannot read property 'checked' of undefined.

esto es lo que estoy haciendo:
Código Javascript:
Ver original
  1. tamaño = Form460._vector_tema.length;
  2.  
  3.      alert('tamaño '+ tamaño);
  4.  
  5.  
  6.   for(var i=0; i<=tamaño;i++){
  7.    
  8.     if(Form460._vector_tema[i].checked==true){
  9.      
  10.     cadena += Form460._vector_tema[i].value + ' ';
  11.        alert('cadena '+ cadena);
  12.  
  13.     }
  14.  
  15.   }

Código HTML:
Ver original
  1. <div id="div_campo_tema" class="campos">
  2.     <input type="hidden" name="tema" value="">
  3. <input type="checkbox" name="_vector_tema" value="1" checked="yes" tabindex="2">&nbsp;Entretenimiento<br>
  4. <input type="checkbox" name="_vector_tema" value="2" tabindex="3">&nbsp;Television<br>
  5. <input type="checkbox" name="_vector_tema" value="3" tabindex="4">&nbsp;Internet<br>
  6. <input type="checkbox" name="_vector_tema" value="4" tabindex="5">&nbsp;Telefonía<br>
  7. <input type="checkbox" name="_vector_tema" value="5" tabindex="6">&nbsp;Tecnicas de ventas<br>
  8. <input type="checkbox" name="_vector_tema" value="6" tabindex="7">&nbsp;Contrato, control, legalizacion, otros<br>    <br>&nbsp;
  9. </div>

lo curioso del caso es que ejuta el ciclo porque me salen las alertas pero cuando termina esto me aperce ese error y no me deja guardar

Gracias por su colaboración
  #2 (permalink)  
Antiguo 10/09/2011, 09:56
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Error cannot read property 'checked' of undefined

Te recomiendo que utilices la siguiente funcion para obtener el número de elementos, y un array con estos:

Código Javascript:
Ver original
  1. var elementos = document.getElementsByName("_vector_tema");
  2. var tamaño = elementos.length;

y luego puedes revisar si estan chequeados o no, así:

Código Javascript:
Ver original
  1. for(var i=0; i<=tamaño;i++){
  2.    
  3.     if (elementos[i].checked == true) {
  4.         cadena += elementos[i].value + ' ';
  5.         alert('cadena '+ cadena);
  6.     }
  7. }

Intentalo así, y dime que tal te funciona.
  #3 (permalink)  
Antiguo 11/09/2011, 10:24
 
Fecha de Ingreso: septiembre-2011
Ubicación: Bogota
Mensajes: 31
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Error cannot read property 'checked' of undefined

No fusiono sigue apareciendo el mismo error.

Uncaught TypeError: Cannot read property 'checked' of undefined


Gracias por responder.
  #4 (permalink)  
Antiguo 11/09/2011, 11:34
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Error cannot read property 'checked' of undefined

Probé este código y si me funcionó,.. no vi muy bien que cambios le hice pero ya funciona

Código HTML:
Ver original
  1.  
  2. <script type="text/javascript" >
  3. function esto(){
  4.     var elementos = document.getElementsByName("_vector_tema");
  5.     var tamano = elementos.length;
  6.     var cadena = "";
  7.  
  8.     for(var i=0; i<=tamano; i++){
  9.         if (elementos[i].checked == true) {        
  10.             cadena += elementos[i].value + ' ';            
  11.         }      
  12.    }
  13.     alert('cadena '+ cadena);
  14. }
  15. </head>
  16.  
  17.  
  18.  
  19.  
  20. <input type="hidden" name="tema" value="">
  21. <input type="checkbox" name="_vector_tema" value="1" checked="yes" tabindex="2">&nbsp;Entretenimiento<br>
  22. <input type="checkbox" name="_vector_tema" value="2" tabindex="3">&nbsp;Television<br>
  23. <input type="checkbox" name="_vector_tema" value="3" tabindex="4">&nbsp;Internet<br>
  24. <input type="checkbox" name="_vector_tema" value="4" tabindex="5">&nbsp;Telefonía<br>
  25. <input type="checkbox" name="_vector_tema" value="5" tabindex="6">&nbsp;Tecnicas de ventas<br>
  26. <input type="checkbox" name="_vector_tema" value="6" tabindex="7">&nbsp;Contrato, control, legalizacion, otros<br>    <br>&nbsp;
  27. <input type="button" value="esto" onclick="esto()" >
  28.  
  29. </body>
  30. </html>
  #5 (permalink)  
Antiguo 11/09/2011, 12:48
 
Fecha de Ingreso: septiembre-2011
Ubicación: Bogota
Mensajes: 31
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Error cannot read property 'checked' of undefined

pues parce muchas gracias
pero noo se que pasa pero no me fusiona.... lo corrí en firefox, chrome y IE y todos me dicen el mismo error............ y copie exatamente tu código al dreamweaver.
  #6 (permalink)  
Antiguo 11/09/2011, 12:57
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Error cannot read property 'checked' of undefined

Eso pasa por usar <= en el for. Usa < y debería funcionar correctamente.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #7 (permalink)  
Antiguo 12/09/2011, 08:30
 
Fecha de Ingreso: septiembre-2011
Ubicación: Bogota
Mensajes: 31
Antigüedad: 12 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Error cannot read property 'checked' of undefined

Si definitivamente ese es el problema......... Muchisimas gracias a ambos por sus tiempo y ayuda.


Etiquetas: js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:05.