Foros del Web » Programando para Internet » Javascript »

createElement no me funciona...

Estas en el tema de createElement no me funciona... en el foro de Javascript en Foros del Web. Tengo una funcionalidad en mi aplicación q hace (o debería hacer... ) lo siguiente: El usuario mete un valor numérico en una caja de texto ...
  #1 (permalink)  
Antiguo 17/02/2006, 10:55
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 19 años
Puntos: 1
Pregunta createElement no me funciona...

Tengo una funcionalidad en mi aplicación q hace (o debería hacer... ) lo siguiente: El usuario mete un valor numérico en una caja de texto y la aplicación le muestra una serie de campos (fecha y hora), tantas veces como el número q se haya introducido. El código es el siguiente:

Código PHP:
function devuelveNSesiones(objeto) {
    var 
nInput 0;
    
obj objeto.form;
    
nInput++;
    for (
nInput=1nInput<=objeto.valuenInput++) {
        
elto1 document.createElement("input");
        
elto1.name "inputf" nInput;
        
elto1.type "text";
        
elto1.width "63";
        
elto1.value "*Fecha:";
        
elto2 document.createElement("input");
        
elto2.name "inputff" nInput;
        
elto2.id "inputff";
        
elto2.type "text";
        
elto2.width "80";
              
eltoA document.createElement("a");
              
eltoA.setAttribute("href""javascript:NewCal('inputff','ddmmyyyy')");
              
elto3 document.createElement("img");
              
elto3.src "../img/cal.gif";
              
eltoFA document.createElement("/a");
        
obj.appendChild(elto1);
        
obj.appendChild(elto2);
        
obj.appendChild(eltoA);
        
obj.appendChild(elto3);
        
obj.appendChild(eltoFA);
    }

Las 5 líneas q están más tabuladas hacia la derecha son las q en teoría fallan... Con eso consigo q me cree un campo fecha y otro hora, tantos pares de campos (con sus correspondientes "títulos") como el número introducido.

Mi problema está con el elemento <a href...></a>. Quiero conseguir hacer con javascript la siguiente línea:

Código HTML:
*Fecha:<input id=\"inputff\" type=\"text\"><a href=\"javascript:NewCal('inputff','ddmmyyyy')\"><img src=\"../img/cal.gif\" ></a> 
No creo q haga falta q ponga aquí la función NewCal... Esa funciona bien y está al inicio del mismo archivo desde donde la llamo, así q eso no es el problema. La línea en HTML funciona correctamente, pero no sé cómo crearla con javascript. ¿Alguien ve dónde está el fallo?
  #2 (permalink)  
Antiguo 17/02/2006, 11:38
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 19 años
Puntos: 1
Por cierto, el error q me da es q no me toma la imgen como "enlace". Si lo hago con HTML, al situar el ratón sobre la imagen el cursor se cambia a la manita típica q sale al detenerse sobre un enlace, pero si lo hago con Javascript el ratón no cambia, continúa la flechita, es decir, q no registra en esa imagen nada en especial...
  #3 (permalink)  
Antiguo 18/02/2006, 06:56
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 19 años
Puntos: 1
Nadie puede darme alguna idea de porqué puede ocurrir?
  #4 (permalink)  
Antiguo 18/02/2006, 07:49
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 19 años
Puntos: 1
Estoy pensando q puede ser porq el id q le asigno a la caja de texto q paso como parámetro en la función javascript es siempre el mismo, así q he añadido una línea:

Código PHP:
elto2.id "inputff" nInput
He metido ese nombre en una variable:

Código PHP:
nombre elto2.id
Pero ahora no sé cómo usar esa variable, es decir, cómo tengo q escribir esta sentencia?:

Código PHP:
eltoA.setAttribute("href""javascript:NewCal('NOMBRE_VARIABLE','ddmmyy')"); 
  #5 (permalink)  
Antiguo 18/02/2006, 12:43
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

No puedes crear un elemento de cierre, cuando creas un elemento, está el cierre implícitamente, si quieres que esa imagen esté dentro del enlace, sería así:

Código:
	eltoA = document.createElement("a"); 
	eltoA.setAttribute("href", "javascript:NewCal('inputff','ddmmyyyy')"); 
	elto3 = document.createElement("img"); 
	elto3.src = "../img/cal.gif"; 
	eltoA.appendChild(elto3);
Y no me canso de decir que si quieres usar un script no es necesario usar etiquetas "a" de enlace... usando solo la imagen y asignándole el script al evento onclick, tienes un código mucho mejor.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 18/02/2006, 14:26
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 19 años
Puntos: 1
Ya, pero intenté hacerlo con el evento onClick de la imagen y no consigo q me salga... He usado lo siguiente:

Código:
elto3 = document.createElement("img");
elto3.src = "../img/cal.gif";
elto3.setAttribute("onClick", "javascript:NewCal('inputff','ddmmyy')");
Y lo añado al formulario con

Código:
obj.appendChild(elto3);
Pero de esta forma no funciona...
  #7 (permalink)  
Antiguo 18/02/2006, 15:04
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

No sé por qué, mucha gente pone click en mayúsculas... es "onclick" y no "onClick"... lo mismo con onmouseover, onmouseout, onkeypress...

Aunque tal vez no sea el problema, pero te muestro un ejemplo que si que funciona...

Código:
<html>
	<head>
		<title>
			DOM
		</title>
		<script type="text/javascript">
			function otroIcono()	{
				var unaImagen = document.createElement("img");
				unaImagen.src = "../miemoticon.gif";
				unaImagen.onclick = function() {alert('hola')};
				document.body.appendChild(unaImagen);
			}
		</script>
	</head>
	<body >
		<img src="../miemoticon.gif" onclick="otroIcono()" />
	</body>
</html>
Lo puedes probar en mi "magnífico" probador de scripts: http://www.pepemolina.com/probador/

Copia el código, y pégalo en el textarea... luego pincha en "mostrar resultado"

La primera imagen genera otras, y las otras muestran una alerta con un mensaje (un parámetro)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 16:46.