2009-12-19 21 views
11

Tengo un formulario donde los usuarios escanear un código de barras en el lector de código de barras entra automáticamente un retorno de carro en el valor que causa el formulario para enviar desde el navegador elige el primer botón como el defecto. ¿Cómo puedo evitar que ocurra algo cuando se presiona la tecla Entrar cuando ingreso un valor en ese cuadro de texto?deshabilitar el botón predeterminado o introduzca clave en asp.net C#

Respuesta

19

Tendrá que hacerlo con javascript. En su margen de beneficio para el cuadro de texto, agregar un controlador de onkeydown así:

<asp:TextBox ID="TextBox1" runat="server" 
    onkeydown = "return (event.keyCode!=13);" > 
</asp:TextBox> 

Esto devolverá false si la clave fue la tecla Intro, lo que cancelará el envío del formulario.

0
private void textbox1_KeyUp(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter) 
     { 

// hacer nada

 } 
    } 

esto puede ayudarle a

+1

Eso funcionaría bien si se tratara de Windows Forms - por desgracia, es ASP.NET. –

+0

sí, eso es correcto! – Kubi

0

controlar el evento onkeypress y hacer algo como esto

if (e.KeyChar == (char)Keys.Enter) 
{ 
    // set event handled 
    e.Handled = true; 
} 
+0

Desafortunadamente, no hay evento OnKeyPress, ya que esto es ASP.NET. –

+0

OnKeyDown? en el cuadro de texto ... –

+0

la respuesta de JavaScript debería funcionar. Aquí hay un hilo conductor que explica por qué estos eventos no están disponibles: http://aspadvice.com/forums/thread/27557.aspx bastante obvio si se piensa en ello. –

4

Establecer el cuadro de texto para tener la propiedad del modo de texto que figura a "multilínea". Entonces, el retorno del carro estará en el TextBox.

Ver también here para una nota sobre lo que debe hacer si estás usando Firefox.

Cuestiones relacionadas