JavaScript - Duda con manejo de eventos.

 
Vista:

Duda con manejo de eventos.

Publicado por Pablo (4 intervenciones) el 01/08/2013 17:42:27
El siguiente código no funciona:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
function una_funcion(){
	var texto = document.getElementById("mensaje").value;
	alert("Has escrito: "+texto);
	}
function dalealboton(){
	document.getElementById("mostrar").onClick = una_funcion;
	}
window.onload = dalealboton;
</script>
 
<form>
<input type="text" id="mensaje" />
<input type="button" id="mostrar" value="Visualizar Mensaje" /><!-- No hace falta el onClick aquí -->
</form>


en cambio, de esta otra foram si funciona:

1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
	window.onload = dalealboton;
		function dalealboton(){
		document.getElementById('mostrar').onclick = function(){
			var texto = document.getElementById("mensaje").value;
			alert("Has escrito: "+texto);
			}
		}
	</script>
<form>
<input type="text" id="mensaje" />
<input type="button" id="mostrar" value="Visualizar Mensaje" /><!-- No hace falta el onClick aquí -->
</form>


No tengo mucha idea de Javascript, es mas, me arreglo con cuatro líneas de código que me sirven para verificar que se rellenan los formularios, etc.

Pero hay ocasiones en los que la cosa se complica y he decidido aprender un poco.

En el ejemplo que no funciona, defino las funciones. He averiguado por ahí que si no pongo el windows.onload el document.getElementByID("mostrar").onClick no se ejecuta. Bueno, vale, lo pongo.

Si lo pongo como atributo onClick del botón (dentro de la etiqueta), si funciona.

Para que todo me funcione, debo "componer" las funciones (así se dice en matemáticas) unas dentro de otras.

Esto me genera problemas de concepto. ¿Por qué no funcina la primera forma?.

Por un lado no quiero que el input tenga muchos atributos, porque luego tienes un form un poco complejo y te pierdes.

Pero si tengo que componer unas funciones dentro de otras, no podré reutilizarlas.

Luego, tampoco he visto (ni con firefox) un debuger que me diga falla en este punto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duda con manejo de eventos.

Publicado por martin (45 intervenciones) el 01/08/2013 22:10:09
Proba poner onclick en lugar de OnClick y nada te impide crear funciones y reutilizarlas siempre y cuando sean publicas en el contexto donde las llames.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con manejo de eventos.

Publicado por Pablo (4 intervenciones) el 02/08/2013 18:07:20
Gracias Martin por tu tiempo.
He cambiado los onClick por onclick y tampoco funciona.
Revisaré el cierre de llaves y la ortografía, que ya me ha pasado otras veces.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con manejo de eventos.

Publicado por martin (45 intervenciones) el 03/08/2013 02:19:51
vos estas llamando a este script dentro del tag body?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con manejo de eventos.

Publicado por Pablo (4 intervenciones) el 03/08/2013 18:09:44
No, precisamente lo que quería era "limpiar" el html y eliminar la llamada a la función en la etiqueta <input>.
Pero quizá mi problema es que dentro de <head> y </head> llamo dos veces a la función dalealboton con window.onload para que haga dos cosas distintas.
He leido por ahí que si llamo a dos funciones de la misma forma, solo se ejecuta una, concretamente la última.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar