2011-06-13 77 views
3

说我有一个整版的形式,但形式中,有需要发生在提交两个或多个事件:Login & Register的WebForms提交与回车键(不点击)具体形式

网站的.master:

<%@ Master Language="C#" AutoEventWireup="true" 
    EnableViewState="true" CodeBehind="Site.Master.cs" 
    Inherits="Site.SiteMasterPage" %> 

<!doctype> 
<html> 
<head runat="server"> 
    <%-- stuff --%>  
</head> 
<body> 
<form ID="MainForm" action="" runat="server"> 

    <asp:Login id="LoginControl" runat="server" />  
    <asp:CreateUserWizard id="RegisterControl" runat="server" /> 

</form> 
</body> 
</html> 

如果我的光标的重点是内部的input type="text"asp:Login,和我打返回(使用JavaScript关闭),页面提交,但我没有登录

,当我尝试注册(填写完CreateUserWizard控件,并击中返回关键,而不是实际点击“注册”,发射的一些事件)

发生同样的事情有没有得到任何非JavaScript的解决方案返回提交正确,当前重点部分的表单的关键?

回答

8

面板控制可以让你的范围内定义默认的按钮它的内容:

<asp:Panel runat="server" DefaultButton="submitButtonA"> 
<asp:LinkButton ID="submitButtonA" runat="server" Text="Submit A"/> 
</asp:Panel> 

<asp:Panel runat="server" DefaultButton="submitButtonB"> 
<asp:LinkButton ID="submitButtonB" runat="server" Text="Submit A"/> 
</asp:Panel> 
+0

所以这工作很好所有(谢谢!),但它似乎是一个解决方案,只适用于JavaScript ..是否有任何解决方法关闭JavaScript返回键表单提交? – tester 2011-06-13 20:24:31

+0

如果你决定在'asp:Panel'中嵌套createUserWizard,那么必须做一些破解才能让'asp:createUserWizard'使用正确的DefaultButton。 http://www.roastedamoeba.com/blog/archive/2008/06/24/setting-the-default-button-for-a-nested-control – tester 2011-06-13 21:31:57

1

默认按钮听起来像它可能是你的朋友今晚 - http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlform.defaultbutton.aspx

其实它可能不是,我还没有过与没有使用Javascript尝试过。

+0

你可以看到如何在这里定制的CreateUserWizard,http://forums.asp.net/p/1199977 /2086200.aspx – 2011-06-13 20:15:54

+0

之后尝试http://stackoverflow.com/questions/6335707/webforms-submitting-specific-form-with-enter-key-not-clicking/6335799#6335799,这是你的建议,我已经确定这是一个纯JavaScript的解决方案。目前这很棒,但我很想找到一个无JS的解决方案来解决这个问题(webforms的一个基本缺陷)。 – tester 2011-06-13 20:26:24

+0

在serverside OnLoad如果回发等...你可以调用按钮的onclick处理程序?它必须是页面上唯一可以工作的表单,但它可能会。 – 2011-06-13 20:29:30