Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Problemas con onBlur

Estas en el tema de Problemas con onBlur en el foro de Javascript en Foros del Web. A ver si me podéis ayudar. He creado un fichero onblur.php con el siguiente código: <!DOCTYPE html> <html> <body> <?php echo "<p>".$_GET['texto']."</p>"; ?> <form action="onblur.php"> ...
  #1 (permalink)  
Antiguo 15/03/2015, 15:34
 
Fecha de Ingreso: marzo-2015
Ubicación: Sevilla
Mensajes: 2
Antigüedad: 9 años, 8 meses
Puntos: 0
Problemas con onBlur

A ver si me podéis ayudar.

He creado un fichero onblur.php con el siguiente código:

<!DOCTYPE html>
<html>
<body>

<?php echo "<p>".$_GET['texto']."</p>"; ?>
<form action="onblur.php">
Ponga un texto en minúsculas: <input type="text" id="texto" name="texto" onblur="myFunction();">
<button type="submit">Ok</button>
</form>

<script>
function myFunction() {
var x = document.getElementById("texto");
x.value = x.value.toUpperCase();
}
</script>

</body>
</html>


El problema es que no siempre me funciona. Es un ejemplo muy sencillo que al salir del campo de texto lo convierte en mayúsculas. Si en lugar de salir con TAB pulsamos Intro, no funciona.

Supongo que el problema está en que el DOM se destruye antes de ejecutarse el script, pero no estoy seguro.

La función que quiero ejecutar es mucho más compleja y modifica dos campos ocultos localizados con getElementById que luego son devueltos por el formulario.

Supongo que es una tontería, pero de verdad que me estoy volviendo loco.
  #2 (permalink)  
Antiguo 15/03/2015, 16:39
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Problemas con onBlur

Bienvenido a FDW.

Cuando pulsas la tecla ENTER mientras un campo de texto del formulario tiene el enfoque, se produce el evento submit con el cual se envían los datos del formulario hacia el archivo destino para que los procese. Así como ejecutas la función 'myFunction' cuando se produce el evento blur en la caja de texto, también podrías ejecutarla cuando se produzca el evento keypress y se haya verificado que la tecla pulsada haya sido ENTER.

Código HTML:
Ver original
  1. <input onkeypress = "ejemplo(event)" />

Código Javascript:
Ver original
  1. function ejemplo(evento){
  2.     if (evento.keyCode == 13){ //13 es el código de la tecla ENTER
  3.         //Tus instrucciones
  4.     }
  5. }

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 16/03/2015, 01:45
 
Fecha de Ingreso: marzo-2015
Ubicación: Sevilla
Mensajes: 2
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Problemas con onBlur

Muchas gracias, creo que con tu ayuda ha quedado solucionado.

Os pego el código por si le ayuda a alguien:

Código:
<!DOCTYPE html>
<html>
<body>

<?php echo "<p>".$_GET['texto1']."-".$_GET['texto2']."</p>"; ?>
<form action="onblur.php">
Texto1: <input type="text" id="texto1" name="texto1" onkeypress="if (event.which == 13) {myProcessKey('texto1')};" onblur="myFunction('texto1');">
Texto2: <input type="text" id="texto2" name="texto2" onkeypress="if (event.which == 13) {myProcessKey('texto2')};" onblur="myFunction('texto2');">
<button type="submit">Ok</button>
</form>

<script>
function myProcessKey(field) {
	myFunction(field);
}

function myFunction(field) {
    x=document.getElementById(field);
    x.value = x.value.toUpperCase();
}
</script>

</body>
</html>
Saludos.
Rafa

Etiquetas: input, onblur, submit
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:20.