Bueno, no sabía como resumir mas el título.
La cuestión es: se puede hacer una función en javascript, que modifique un campo de formulario PERO que si este campo de formulario tiene un evento "onchange" que lo ejecute tmb?
Bueno, no sabía como resumir mas el título.
La cuestión es: se puede hacer una función en javascript, que modifique un campo de formulario PERO que si este campo de formulario tiene un evento "onchange" que lo ejecute tmb?
Ahora mismo no me acuerdo si al cambiar el contenido del input por código se lanza el envento onchange, pero si no es así, lo puedes llamar tú directamente:
document.miFormulario.miInput.onchange()
NeB1 si se puede, y es muy facil. Como bien dice cabron, tienes que llamarlo directamente tú, pq por defecto no se ejecuta al cambiar el conteindo por javascript.
La funcion javascript lo primero que tiene q hacer es comprobar que el valor que tenga no sea el mismo que el q se le va a poner (esto si quieres, sino cambialo siempre) y luego cambiar el texto del campo o lo que sea. Luego comprobar si existe funcion en onchange (si es null o no) y luego ejecutar la funcion directamente.
Te pongo un ejemplito, que si cambias el texto, ejecuta la funcion que muestra un mensaje, y si pulsas el boton, te pone un valor por defecto y ejecuta la funcion de cambio (q es mostrar un mensaje). Si el texto q habia, era el mismo que vas a poner (no ha cambiado) no se ejecuta nada.
Ya haces lo que sea, o le quitas la comprobación esa, o lo que quieras, esto es un ejemplo simple y rápido.
<html>
<head>
<script type='text/javascript'>
function cambio(){
alert("se han hecho cambios");
}
function pulsar(){
if(document.getElementById('texto1').value!="Valor puesto por el boton"){
document.getElementById('texto1').value="Valor puesto por el boton";
if(document.getElementById('texto1').onchange != null)
document.getElementById('texto1').onchange();
}
}
</script>
</head>
<body>
<form name='pepe' method='post'>
<input type='text' id='texto1' value="Valor defecto" onchange='cambio();'/>
<input type='button' value='Boton' onclick='pulsar();' />
</form>
</body>
</html>