2008-10-16 8 views
6

Tengo un textbox cuya entrada está siendo manejada por jQuery.¿Puedo cancelar la devolución de datos cuando el usuario presiona regresar en un cuadro de texto?

$('input.Search').bind("keyup", updateSearchTextbox); 

Cuando presiono Enter en el cuadro de texto, me sale una devolución de datos, que se mete todo. ¿Cómo puedo atrapar ese Enter e ignorarlo?

(Sólo para anticiparse a una posible sugerencia: El cuadro de texto tiene que ser un <asp:textbox ... /> - No puedo reemplazarlo con un <input ... />.)

Respuesta

13

Su navegador está presentando el formulario automáticamente cuando se pulsa enter. Para cancelar esto, agrega return false a tu función updateSearchTextBox.

si eso no funciona, intente lo siguiente:

<script language="JavaScript"> 

function disableEnterKey(e) 
{ 
    var key;  
    if(window.event) 
      key = window.event.keyCode; //IE 
    else 
      key = e.which; //firefox  

    return (key != 13); 
} 

</script> 

Y en el código subyacente:

textbox.Attributes.Add("OnKeyPress","return disableEnterKey(event)"); 
+2

línea de guión eventos están mal gusto .... evitarlos. Sé que a asp.net le gustan pero ... grrrr al baño de mi vida – redsquare

0

Gracias a todos los que respondieron. Aquí está mi nueva función updateSearchTextbox, que funciona a la perfección:

updateSearchTextbox = function(e) { 
    /// <summary> 
    /// Handles keyup event on search textbox 
    /// </summary> 

    if (e.which == "13") { 
     // update now 
     updateConcessions(); 
     // Don't post back 
     return (false); 
    } else { 
     delayedUpdateConcessions(); 
    } 

} 
Cuestiones relacionadas