2009-09-24 19 views
20

Tengo una aplicación ASP.NET donde hay algunos botones ASP.NET y varios botones HTML simples. Cada vez que hay un cuadro de texto donde un usuario ingresa, el botón ASP.NET intenta enviar el formulario.Cancelar el botón de envío predeterminado en ASP.NET

Sé que puedo cambiar el defaultButton, pero no quiero que haya ningún botón predeterminado. Solo lo quiero así que cuando el usuario presiona enter no hace nada.

He intentado configurar defaultButton en blanco, pero parece que no funciona. ¿Cómo evito que el botón ASP.NET envíe el formulario cuando se presiona Entrar?

Respuesta

33

Puede configurar el botón de UseSubmitBehavior = false

btnCategory.UseSubmitBehavior = false; 
+0

Eso sí produce el comportamiento necesario: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx –

+0

@RyanSmith a veces es difícil buscar negativos , como "no tiene un botón de enviar" debido a la cantidad de formas en que se puede expresar el negativo. –

+2

Una nota adicional: ImageButton de ASP.Net no tiene un atributo UseSubmitBehavior. Si está utilizando uno de esos, consulte la solución de "botón oculto oculto" a continuación. también vea: [Esta pregunta] (http://stackoverflow.com/questions/1561400/how-to-disable-submit-behaviour-of-aspimagebutton) – CodePartizan

23

Esto es lo que he usado para solucionar este problema.

<form runat="server" defaultbutton="DoNothing"> 
     <asp:Button ID="DoNothing" runat="server" Enabled="false" style="display: none;" /> 
+1

¡Buen hack! Tenía un botón de imagen asp.net en mi página maestra que seguía enviando cada vez que se hacía clic en el botón de ingresar en cualquier página. Sin embargo, este pequeño truco solucionó el problema. – Jagd

+0

Intenté literalmente todo, pero por alguna razón (error) o algo así, los ImageButtons continuaron encendidos como DefaultButtons incluso cuando no los configuraba como tales. Intenté todos los intentos anteriores, esto es lo único que funcionó. Por mucho que odie usar un áspid ficticio: El botón funcionó perfectamente ... – emalamisura

+0

Me da un poco de odio el uso de hacks como ese, pero esta es la solución más rápida cuando tienes ImageButtons. –

0
<asp:TextBox ID="TXT_Quality" runat="server" Width="257px" 
onkeypress="return key_Pressed(event, this);"> 
</asp:TextBox> 

function key_Pressed(e, textarea) 
{ 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if(code == 13) 
    { 
     return false; 
    } 
    return true; 
} 
1

También tuve este problema con un ImageButton en mi MasterPage (el botón Cerrar sesión) se fija como el botón predeterminado (por lo que cada vez que alguien pulsa Enter, sería ingrese a cabo). Lo resuelto mediante el uso de la línea siguiente en el evento Page_Load en cada página niño, que es un poco de una solución temporal, pero funciona:

Form.DefaultButton = cmdSubmit.UniqueID; 

Espero que esto ayude a alguien más.

Cuestiones relacionadas