Comunidad de diseño web y desarrollo en internet online

problema con JS, arrays y document.getElementsByTagName

Citar            
MensajeEscrito el 24 Jul 2008 01:35 pm
¿Por qué el siguiente código JS

Código :

checkFormulario = function() {
   var objs = new Array("input","textarea");
   
   for(qo=0;qo<objs.length;qo++) {
      elementos = document.getElementsByTagName(objs[qo]);
      if (elementos) { alert('Si') }
   }
}
window.onload = function() { checkFormulario(); }


... me devuelve "Si" en todos los documentos a pesar de NO tener inputs o textareas?
A pesar de que verifico si existen tagnames "inputs" o "textareas" con document.getElementsByTagName, el alert siempre se dispara.
La variable elementos dentro del alert, devuelve el nombre de la variable "input" o "textarea". Si especifico 3 elementos en el array, se ejecutan 3 alerts...
¿Alguien podría hecharme una mano?

Gracias.

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

mozilla
Citar            
MensajeEscrito el 01 Ago 2008 11:55 am

Código :

if(document.getElementsByTagName('inputs'){alert('Si');}
Esto siempre te va a devolver true.
Si fuera todo lo malo que me gustaría, te diría:
- a tí te dejo descubrir el porqué.

Pero como soy algo bueno...
te doy una pista.
Consulta el siguiente valor:

Código :

document.getElementsByTagName('inputs').length


¿Te ha ayudado en algo la pista?
;)

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 01 Ago 2008 12:45 pm
Demonios... pensé que trabajaba igual que "getElementById" que devuelve true si el ID existe en el documento... -.-

Tendré que hacerlo de otra manera...

Gracias Rizome...

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

mozilla
Citar            
MensajeEscrito el 01 Ago 2008 01:00 pm
Jejeje....
Bueno...
No necesariamente tienes que hacerlo de otra manera (te vale con la pista que te dí: verificar la longitud de la matriz que contiene los elementos devueltos por "getElementsByTagName"; si es "0", es que "no hay elementos")

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 01 Ago 2008 01:17 pm
Aaaah, pensé que con "length" devolvía la cantidad de caracteres que contenga la palabra dentro del tagname... jeje.

Una vez más... gracias por la solución y por no mandarme a estudiar JS... :$ jajaja

Saludos Rizome.

¡¡Oigan todos, este tío sabe... haganle caso!! :p

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

mozilla
Citar            
MensajeEscrito el 01 Ago 2008 01:51 pm
jejeje...
Merece ser azotado...

A estudiar!!!
a estudiar!!!

xD

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 01 Ago 2008 02:17 pm
Para compenzar mi castigo, comparto el siguiente código con ustedes.
Está posteado en mi blog... check it out

Con agradecimiento a Rizome.

"La letra con sangre entra"... se dijo una vez... y al parecer... así es... xD

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

mozilla

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.