Foros del Web » Programando para Internet » Javascript »

Como detectar que un input no existe

Estas en el tema de Como detectar que un input no existe en el foro de Javascript en Foros del Web. Chicos estoy intentando hacer un formulario dinámico para que suban imagenes a una web pero este código me da un mensaje de error: document.getElementById(imagen_siguiente).value has ...
  #1 (permalink)  
Antiguo 30/10/2006, 13:28
Avatar de [HH]KaoS  
Fecha de Ingreso: diciembre-2004
Ubicación: Nerja, Málaga (España)
Mensajes: 216
Antigüedad: 19 años, 4 meses
Puntos: 6
Como detectar que un input no existe

Chicos estoy intentando hacer un formulario dinámico para que suban imagenes a una web pero este código me da un mensaje de error:
document.getElementById(imagen_siguiente).value has no properties (claro ya que aún no se ha definido, esa es la comprobación más bien)

El error está en la linea:
no_existe=document.getElementById(imagen_siguiente ).value
Cuando intento que me devuelva un undefined si aún no se ha establecido un campo para otra imagen.

Aquí teneis el código:
Código:
<script type="text/javascript" src="scripts/x_core.js"></script>
<script language="javascript">
	//Le pasamos como argumento el numero de la capa y el prefijo de la capa
	function aniadir(num_capa, pref_capa, pref_imagen)
	{
		//Creamos una cadena con el valor  campo_actual=imagen_1
		ultima_num_capa=num_capa-1
		string_capa=ultima_num_capa.toString()
		campo_actual=pref_capa+string_capa
		imagen_actual=pref_imagen+string_capa

		//Creamos una cadena con el valor campo_siguiente=imagen_2
		string_num_capa2=num_capa.toString()
		campo_siguiente=pref_capa+string_num_capa2
		imagen_siguiente=pref_imagen+string_num_capa2
		
		//document.write('Siguiente='+document.getElementById('imagen_siguiente+' Actual='+campo_actual+' Existe_siguiente='+existe_siguiente)
		no_existe=document.getElementById(imagen_siguiente).value
		if(document.getElementById(imagen_actual).value != '' && no_existe == 'undefined')
		{
			//Si esta lleno el ultimo campo y no existe el siguiente
			valor_siguiente=num_capa+1
			texto='Imagen '+num_capa+': <input name="'+imagen_siguiente+'" type="file" size="40" onChange="aniadir('+valor_siguiente+',\''+pref_capa+'\',\''+pref_imagen+'\')">'
			//Creamos una capa para la posible siguiente imagen
			texto= texto+'<div id="'+campo_siguiente+'"></div>'
			
			//Cargamos el codigo HTML en la capa definida para ello
			xInnerHtml(campo_actual,texto)
		}
	}
</script>
<form action="prueba_dinamico.php" method="post" name="imagenes">

		Imagen 1:<input name="imagen_1" id="imagen_1" type="file" size="40" onChange="aniadir(2,'capa_','imagen_')">
		<br>
	  <div id="capa_1"></div>
	  <input type="submit" name="Submit" value="Enviar">
</form>
Si quereis probarlo aquí teneis la URL:
http://nefertec.com/pruebas/bibianblue.com/prueba2.html

Un saludo y gracias por adelantado
__________________
Más información sobre mi: Raúl Jiménez
  #2 (permalink)  
Antiguo 30/10/2006, 13:36
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola [HH]KaoS

Puedes comprobarlo con esto:

Código:
if (!document.getElementById(imagen_siguiente))
  alert('No existo, buaaa');
Saludos,
  #3 (permalink)  
Antiguo 30/10/2006, 13:54
Avatar de [HH]KaoS  
Fecha de Ingreso: diciembre-2004
Ubicación: Nerja, Málaga (España)
Mensajes: 216
Antigüedad: 19 años, 4 meses
Puntos: 6
Mil gracias Javier!, con eso ya no suelta error :D

pongo aquí el código final para por si a alguien le sirve:
Código:
<script type="text/javascript" src="scripts/x_core.js"></script>
<script language="javascript">
	//Le pasamos como argumento el numero de la capa y el prefijo de la capa
	function aniadir(num_capa, pref_capa, pref_imagen)
	{
		//Creamos una cadena con el valor  campo_actual=imagen_1
		ultima_num_capa=num_capa-1
		string_capa=ultima_num_capa.toString()
		campo_actual=pref_capa+string_capa
		imagen_actual=pref_imagen+string_capa

		//Creamos una cadena con el valor campo_siguiente=imagen_2
		string_num_capa2=num_capa.toString()
		campo_siguiente=pref_capa+string_num_capa2
		imagen_siguiente=pref_imagen+string_num_capa2
		
		//document.write('Actual='+imagen_actual)
		//no_existe=document.getElementById(imagen_siguiente)
		if(document.getElementById(imagen_actual).value != '' && !document.getElementById(imagen_siguiente))
		{
			//Si esta lleno el ultimo campo y no existe el siguiente
			valor_siguiente=num_capa+1
			texto='Imagen '+num_capa+': <input id="'+imagen_siguiente+'" type="file" size="40" onChange="aniadir('+valor_siguiente+',\''+pref_capa+'\',\''+pref_imagen+'\')">'
			//Creamos una capa para la posible siguiente imagen
			texto= texto+'<div id="'+campo_siguiente+'"></div>'
			
			//Cargamos el codigo HTML en la capa definida para ello
			xInnerHtml(campo_actual,texto)
		}
	}
</script>
<form action="prueba_dinamico.php" method="post" name="imagenes">

		Imagen 1:<input id="imagen_1" type="file" size="40" onChange="aniadir(2,'capa_','imagen_')">
		<br>
	  <div id="capa_1"></div>
	  <input type="submit" name="Submit" value="Enviar">
</form>
Gracias de nuevo y saludos!
__________________
Más información sobre mi: Raúl Jiménez
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 03:25.