Foros del Web » Programando para Internet » Javascript »

.length

Estas en el tema de .length en el foro de Javascript en Foros del Web. Hola Gente! Tengo un problema con la propiedad .length si tengo cargado solo un registro cuando hago un alert del document.form.nombre.length, me lo devuelve como ...
  #1 (permalink)  
Antiguo 28/08/2008, 13:54
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
.length

Hola Gente!

Tengo un problema con la propiedad .length
si tengo cargado solo un registro cuando hago un alert del document.form.nombre.length, me lo devuelve como undefined
en cambio si tiene mas de uno, me devuelve el valor correctamente. Que puede ser? como lo puedo solucionar?
Saludos y muchas gracias desde ya
Jesy
  #2 (permalink)  
Antiguo 28/08/2008, 13:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: .length

Es que cuando hay uno solo, no es una matriz, por eso no puedes obtener el .length.

¿Cuál sería la aplicación de eso? Tal vez así se nos ocurre alguna idea.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 28/08/2008, 14:21
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: .length

cargo en una capa titulos que vienen de una base de datos, cada titulo tiene un radio con el id del titulo. y yo necesito obtener en otra funcion el id del titulo que este seleccionado, para asociarlo a otros atributos.
Esto es lo que estaba haciendo, pero como puede que tenga un solo titulo, esto no me sirve.

for(var i=0;i<document.forms.frmGrillaTitulos.idTituloSele c.length;i++)
{
if(document.forms.frmGrillaTitulos.idTituloSelec[i].checked)
{
var idTitulo=document.forms.frmGrillaTitulos.idTituloS elec[i].value;
}
}
  #4 (permalink)  
Antiguo 28/08/2008, 14:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Respuesta: .length

Lo que puedes hacer es usar typeof para saber si la variable está undefined.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 28/08/2008, 14:29
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: .length

no entinedo.
yo necesito saber el id del titulo que se seleccionó
  #6 (permalink)  
Antiguo 28/08/2008, 14:33
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Respuesta: .length

Pues bien, esa función sirve para cuando hay varios títulos, ¿no?. Pues entonces lo único que tenemos que hacer es que en caso de que length sea undefined (eso significa que hay un solo título) solo compare ese título. Así:
Código PHP:
if (typeof(document.forms.frmGrillaTitulos.idTituloSelec.length) != 'undefined') {
   for(var 
i=0;i<document.forms.frmGrillaTitulos.idTituloSelec.length;i++) {    
     if(
document.forms.frmGrillaTitulos.idTituloSelec[i].checked) {
       var 
idTitulo=document.forms.frmGrillaTitulos.idTituloSelec[i].value;
            }
   }
} else {
   if (
document.forms.frmGrillaTitulos.idTituloSelec.checked) {
      
idTitulo document.forms.frmGrillaTitulos.idTituloSelec.value;
   }

__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 28/08/2008, 14:38
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: .length

ok, lo intento y despues te cuento. muchas gracias!!
  #8 (permalink)  
Antiguo 01/09/2008, 06:14
Avatar de Jesica  
Fecha de Ingreso: agosto-2007
Mensajes: 78
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: .length

Mil gracias Genio!
Aparentemente funciona bien!
Besos
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 20:41.