2009-09-24 6 views
20

J'ai une application ASP.NET où il y a quelques boutons ASP.NET et plusieurs boutons HTML simples. Chaque fois qu'il y a une zone de texte où un utilisateur frappe, le bouton ASP.NET essaie de soumettre le formulaire.Annulation du bouton de soumission par défaut dans ASP.NET

Je sais que je peux changer le defaultButton, mais je ne veux pas qu'il y ait un bouton par défaut. Je veux juste que lorsque l'utilisateur appuie sur entrer, il ne fait rien.

J'ai essayé de définir defaultButton à blanc, mais cela ne semble pas fonctionner. Comment puis-je empêcher le formulaire d'être soumis par le bouton ASP.NET lorsque vous appuyez sur Entrée?

Répondre

33

Vous pouvez définir UseSubmitBehavior = false

btnCategory.UseSubmitBehavior = false; 
+0

Cela produit en effet le comportement nécessaire: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx –

+0

@RyanSmith parfois il est difficile de rechercher des négatifs , comme "ne pas avoir un bouton de soumission" en raison du nombre de façons dont le négatif peut être articulé. –

+2

Remarque supplémentaire: ImageButton de ASP.Net n'a pas d'attribut UseSubmitBehavior. Si vous en utilisez un, voyez la solution "bouton caché caché" ci-dessous. voir aussi: [Cette question] (http://stackoverflow.com/questions/1561400/how-to-disable-submit-behaviour-of-aspimagebutton) – CodePartizan

23

du bouton Voici ce que je l'habitude de résoudre ce problème.

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

Nice hack! J'avais un bouton d'image asp.net dans ma masterpage qui continuait à soumettre chaque fois que le bouton d'entrée était cliqué sur n'importe quelle page. Cependant, cette petite astuce a résolu le problème. – Jagd

+0

J'ai essayé littéralement tout mais pour quelque raison que ce soit (bug) ou quelque chose, ImageButtons a continué à être déclenché comme DefaultButtons même si vous ne les avez pas définis comme tels. J'ai essayé toutes les tentatives ci-dessus, c'est la seule chose qui a fonctionné. Autant que je déteste utiliser un pseudo ASP: Bouton ça a fonctionné parfaitement ... – emalamisura

+0

Kinda déteste utiliser des hacks comme ça, mais c'est la solution la plus rapide quand vous avez des boutons image. –

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

J'ai aussi eu ce problème avec un ImageButton sur mon MasterPage (le bouton de déconnexion) étant défini comme le bouton par défaut (donc chaque fois que quelqu'un a appuyé sur Enter, il les déconnecter). Je l'ai résolu en utilisant la ligne suivante dans l'événement Page_Load sur chaque page des enfants, ce qui est un peu un travail autour, mais il fonctionne:

Form.DefaultButton = cmdSubmit.UniqueID; 

Hope this helps quelqu'un d'autre.

Questions connexes