2009-04-13 18 views
5

Considérese el siguiente formulario:evento JavaScript OnBlur impide formulario HTML se presenten

<form action="/a" method="post"> 
    <input name="x" type="text" onblur="myonblur(e)" /> 
    <input name="y" type="text" /> 
    <input name="submit" type="submit" value="Submit" /> 
</form> 

Cuando el foco está en el elemento con el nombre de "x" y el usuario pulsa el botón de enviar, onBlur desencadena el evento pero formulario no se presenta. ¿Hay alguna manera de hacer que el botón de enviar funcione como se espera si tengo onblur eventos en mi formulario?

Respuesta

3

Considere la optimización de su método onBlur() por lo que tarda menos tiempo en ejecutarse. Si no se puede enviar su formulario, puede deberse a que el onBlur() es demasiado largo y no permite que el navegador haga nada más.

También puede utilizar el método onChange() en lugar de onBlur(). Eso puede funcionar mejor para ti.

+0

Gracias por su respuesta. La idea es verificar que el nombre de usuario existe a través de la llamada AJAX, por lo que con onChange() sería mucho más difícil de implementar, si es posible. Entonces, ¿quieres decir que no hay forma de que use onBlur()? – Artem

+0

Debe usar las solicitudes AJAX asíncronas que se ejecutan en segundo plano y no cuelgan el navegador. Al usarlos, la publicación de On seguirá funcionando incluso si la solicitud de Ajax no ha finalizado. La biblioteca Jquery realiza una sincronización de manera predeterminada, eche un vistazo a http://docs.jquery.com/Ajax/jQuery.ajax –

0

Trate de añadir

return true; 

después de llamar a la función de su onBlur. El problema al que se enfrenta podría deberse a la prevención "return false" de los controladores de eventos.

+0

No. La primera respuesta fue correcta. Probé tu enfoque y no ayudó. – Artem

+0

OK. Era solo una posibilidad, sin embargo;) – BYK

Cuestiones relacionadas