Detectar en javascript si campo de form tiene...

NeB1

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?

cabron

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()

Fr4nk0

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>
NeB1

OOOOH!!! de puta madre, os quiero xD

Fr4nk0

Jeje estamos pa ayudar. Todo el mundo tiene dudas, y entre todos casi siempre se resuelven

Usuarios habituales

  • Fr4nk0
  • NeB1
  • cabron