Categorías > Lenguajes > PHP > Evento Onchange ...
Nuevo Mensaje | Responder
Fdo88


97 envíos
Desconectado
1723 lecturas
6 respuestas
Evento Onchange26-02-2010 a las 15:53:32

Tengo un problema:

En un campo de texto asi:

Código Fuente:
<input type='text' name='total' onChange="enviar();" readonly="true"/>


Tengo una funcion javascript asociada al evento onChange, pero como es un campo de solo lectura el valor cambia por operaciones que suceden en otros campos y no directamente, y la funcion enviar no se ejecuta aunque el valor cambie, y necesito que lo haga solo si ese valor cambia.

Si no me hice entender me dicen y muchas gracias por su posible ayuda.


Responder | Citar | Moderar | Mensaje Privado
Training Channel
CHuLoYo


762 envíos
Desconectado

#1
RE: Evento Onchange26-02-2010 a las 16:23:40

No muy bien, explícate un poco mejor.
Creo que te entiendo pero lo único que se me ocurre es que hagas focus y blur para que detecte el cambio onchange. Es decir, tu rellenas los datos dinámicamente, pero al ser readonly="readonly" el usuario no puede hacer foco ni soltarlo manualmente, con lo que tendrás que hacerlo en el script que rellena los datos.
Sería algo así:

Código Fuente:<script>
function rellenar()  {

/*Rellenas los datos de los campos*/

/*Ahora procedes a poner y quitar foco: */
document.getElementById("campo").focus();
setTimeout('document.getElementById("campo").blur()',100);

}

El setTimeout lo que hace es ejecutar la acción en los milisegundos indicados en el segundo parámetro (en este caso, a los cien milisegundos se dispara blur().
Si tu campo no tiene id pero sí name y está dentro de un form identificado con name, la sentencia cambia:
Código Fuente:<script>
function rellenar()  {

/*Rellenas los datos de los campos*/

/*Ahora procedes a poner y quitar foco: */
document.nameDelFormulario.campo.focus();
setTimeout('document.nameDelFormulario.campo.blur()',100);

}


Saludos.

www.Esquio.net | Diseño y programación web profesional
Responder | Citar | Moderar | Mensaje Privado
Fdo88


97 envíos
Desconectado

#2
RE: Evento Onchange26-02-2010 a las 16:30:49

Entonces debo, asignarle el foco cuando el valor cambie y quitarselo despues del cambio, y que la funcion se ejecute despues del blur??


Responder | Citar | Moderar | Mensaje Privado
CHuLoYo


762 envíos
Desconectado

#3
RE: Evento Onchange26-02-2010 a las 16:37:43

Ein?
Eso último no lo entendí
Lo mejor es que detectes en el mismo script si cambia, y si lo hace "dalle jas" como se dice en mi tierra.

Vamos algo así:
Código Fuente:
function cargarDatos() {

  /* Sabiendo qué datos vas a cargar puedes comprobar */

var valor=document.formulario.campo.value;

    if(valor==nuevoValorACargar) {
      enviar();
    }

}

www.Esquio.net | Diseño y programación web profesional
Responder | Citar | Moderar | Mensaje Privado
Fdo88


97 envíos
Desconectado

#4
RE: RE: Evento Onchange26-02-2010 a las 16:45:03


Me parece muy sencillo, pero util.

Ya me dio hasta pena abrir un foro solo par eso, Jeje.

Me pasa algo parecido con un calendario, pero primero
lo revisare mejor y despues ... te podria consultar??


Responder | Citar | Moderar | Mensaje Privado
CHuLoYo


762 envíos
Desconectado

#5
RE: Evento Onchange26-02-2010 a las 16:52:48

Utilízanos hombre!
Sólo con la excusa de pinchar en la publi

www.Esquio.net | Diseño y programación web profesional
Responder | Citar | Moderar | Mensaje Privado
Fdo88


97 envíos
Desconectado

#6
RE: RE: Evento Onchange26-02-2010 a las 16:59:24

Bueno y  muchas gracias nuevamente.


Responder | Citar | Moderar | Mensaje Privado