JavaScript - evento onChange

   
Vista:

evento onChange

Publicado por Aitor (6 intervenciones) el 23/09/2011 09:43:29
Buenos días,

soy nuevo en javascript y tengo un problema con el evento onChange. una vez que ocurre llama a una funcion y ésta se ejecuta pero se queda continuamente ejecutandose proque el evento ha cambiado.

¿hay alguna forma de paralo?

Gracias
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
Imágen de perfil de xve

evento onChange

Publicado por xve (1594 intervenciones) el 23/09/2011 10:18:24
Hola Aitor, no te entiendo lo que quieres decir... el evento onChange se ejecuta cada vez que varia el campo, pero ejecuta la función que le indiques, y finaliza.
si nos puedes comentar con mas detalle...
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

evento onChange

Publicado por Aitor (6 intervenciones) el 23/09/2011 10:42:31
Gracias por tu respuesta.

A ver si me explico mejor, el evento se ejecuta cuando varía un input de tipo "range" en html5.
La función copia en una variable el valor que tiene este input y sale de la función. este variable la uso luego en otro sitio y se actualiza según otra regla.

El problema es que no se actualiza y se queda con el valor que ha obtenido al ocurrir el evento.

He hecho varias pruebas y si en la función anterior le asigno un valor a la variable funciona perfectamente, es decir, sale de la función y luego la variable se actualiza al usarla en otro sito, pero si lo hago con el input al salir de la funcion esta variable no se actualiza.

a ver si me dais alguna pista.

Gracias
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

evento onChange

Publicado por aitor (6 intervenciones) el 23/09/2011 10:53:25
Lo explicao mejor:

tengo por una lado:
<input id="thetaslider" type="range" min="0" max="6" value="1" onchange=settheta()>

y por otro:

settheta = function () {
theta=document.getElementById('thetaslider').value;
};

Quiero usar esta variable theta en otro sitio y que cambie su valor, pero éste no cambia.

Si hago así:
settheta = function () {
theta=2;
};

Sale de la función y al usar la variable theta en otro sitio esta se puede cambiar su valor.

¿alguna idea?

Gracias
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
Imágen de perfil de xve

evento onChange

Publicado por xve (1594 intervenciones) el 23/09/2011 13:38:57
Hola Aitor, mil perdones, no te entendía...

para ello, lo que tienes que hacer es declarar la variable fuera de cualquier función, de esta manera podrás utilizarla en cualquier función y variar su contenido... así:
1
var settheta="";

Coméntanos si te a servido, ok?
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

evento onChange

Publicado por Aitor (6 intervenciones) el 23/09/2011 16:15:05
Gracias por la respuesta pero ahora no lo puedo probar.

Aun así, la variable "theta" la he declarado fuera de cualquier funcion asignándole un valor, esa es lq que quiero que cambien. Probaré tu idea y ya lo comentaré.

Gracias y un saludo
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

evento onChange

Publicado por Aitor (6 intervenciones) el 25/09/2011 21:21:04
Hola de nuevo,

Sigo sin solucionar esto, pero mirado en Chrome la cosola de Javscript, me da el siguiente rror:

Uncaught ReferenceError: settheta is not defined
(anonymous function) four.htm:58
onchange

pero sí que está definida. ¿Qué es una función anónima?

Gracias
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

evento onChange

Publicado por Aitor (6 intervenciones) el 25/09/2011 23:13:43
Ya lo he solucionado, era porque con document.getElementById('thetaslider').value; el resultado que obtenía era número entre comillado y no lo podía usar luego.

Lo he corregido multiplicándolo por 1 y así se convierte en numero sin comillas, alguna otra solución no ta chapucera?

Gracias
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