Tengo el siguiente problema en ASP.NET: hay un formulario que contiene un cuadro de texto y un botón al lado que se supone debe ser presionado por el usuario después de llenar el cuadro (muestra en http://www.burnthespam.info, haga clic en "Seleccione su uno" o cuando use ReCaptcha en una ventana emergente). A menudo, en cambio, los usuarios presionan la tecla ENTER
para enviar el formulario.Manejo del botón ENTRAR en TextBox, ASP.NET
Esto no provoca que se active el evento de clic en el botón y posiblemente cause un comportamiento inesperado. En burnthespam, "traté" de resolver comprobando si había datos dentro del cuadro de texto (pero ahora si haces algo diferente a presionar ENTER
es como si lo hubieras presionado) para solucionarlo.
¿Sabes si hay otra forma de manejar el envío del formulario con la clave ENTER
, o un fragmento de Javascript que cuando presionas ENTER
presiona el botón que me gusta?
EDITAR
Quiero controlar el evento tecla ENTER en el lado del servidor , es decir. Ya tengo
protected void button_Click(object sender, EventArgs e)
{
Response.Redirect(...);
}
Quiero que el método que se llama no sólo cuando envíe el formulario utilizando el botón (clic o espacio con él resaltado) sino también cuando un usuario presiona ENTER
cuando se enfoca el cuadro de texto
EDIT 2
¿Conoce si es posible programación clic en un botón en Javascript? Tal vez no sea posible evitar phishing/spamming (consulte Facebook y "compartir con amigos", por ejemplo), pero aún me gustaría preguntar ...
Me acabo de dar cuenta de que su código, con pequeñas modificaciones, simplemente es IGNORADO por IE8 mientras funciona en Firefox. ¿Podría ser debido al hecho de que TextBox es un gaia: TextBox de Gaia AJAX WebWidgets y aparece solo después de una devolución de datos? Comprobé dos veces que el HTML generado coincide con el del clic de un botón, y ni siquiera tuve que deshabilitar la validación de eventos (porque en FF funciona), pero todavía recibo una devolución de datos HTTP vacía (no AJAX como FF) –
Eso es extraño. Si el javascript está allí, y parece que el javascript en el botón y el botón funciona, entonces uno pensaría que el script en el cuadro de texto debería tener el mismo resultado. Es posible que el cuadro de texto de gaia esté registrando un evento onKeyDown también y que esté causando que no llame al script en línea. Deberías probar el depurador de scripts y ver si el método dopostback realmente está siendo llamado. –
Intentando usar esto ... Lo puse en funcionamiento reemplazando el evento onkeyevent con solo "if (event.keyCode == 13) {alert ('go');}" ... 'ir' cuadro de alerta aparece cada vez enter se hace clic. Pero cuando devuelvo el código original a la página, solo se actualiza y nunca se llama al evento de clic de LinkButton. ¿Algunas ideas? (Mi código es casi idéntico a su ejemplo, excepto que tengo solo un LinkButton al que están llamando ambos TextBoxes) Estoy probando esto en IE9. – cavillac