2009-09-24 75 views
20

我有一个ASP.NET应用程序,其中有几个ASP.NET按钮和几个纯HTML按钮。任何时候当用户输入一个文本框时,ASP.NET按钮会尝试提交表单。取消ASP.NET中的默认提交按钮

我知道我可以更改defaultButton,但我不希望有任何默认按钮。我只是想要它,所以当用户按下输入它什么都不做。

我试着将defaultButton设置为空,但这似乎不起作用。如何在输入按下时防止ASP.NET按钮提交表单?

回答

33

您可以设置按钮的UseSubmitBehavior =假

btnCategory.UseSubmitBehavior = false; 
+0

这确实会产生所需的行为:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx – 2009-09-24 18:58:32

+0

@RyanSmith有时很难搜索底片,就像“没有提交按钮”一样,因为消极的表达方式有多种。 – 2012-11-08 22:06:41

+2

附加说明:ASP.Net的ImageButton没有UseSubmitBehavior属性。如果您使用其中之一,请参阅下面的“隐藏虚拟按钮”解决方案。另见:[这个问题](http://stackoverflow.com/questions/1561400/how-to-disable-submit-behaviour-of-aspimagebutton) – CodePartizan 2014-05-14 18:47:59

23

这是我用来解决这个问题。

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

尼斯破解!我的主页上有一个asp.net图像按钮,每当在任何页面上点击输入按钮时都会一直提交。但是,这个小小的技巧解决了这个问题。 – Jagd 2011-02-02 19:48:07

+0

我尝试了一切,但无论出于什么原因(错误)或什么,ImageButtons继续作为DefaultButtons被解雇,即使你没有设置它们。我尝试了所有上述尝试,这是唯一有效的工作。尽管我讨厌使用一个虚拟的asp:按钮它的工作完美... – emalamisura 2012-09-13 19:17:58

+0

有点讨厌使用黑客这样的,但这是最快的解决方案,当你有imageButtons。 – 2014-09-22 16:09:29

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

我也有这个问题,在我的母版(退出按钮)的ImageButton的被设置为默认按钮(所以每当有人按下回车键,它会记录出来)。我解决它通过使用下面的行每一个孩子页面上Page_Load事件,这是一个有点的变通,但它的工作原理:

Form.DefaultButton = cmdSubmit.UniqueID; 

希望这可以帮助其他人。