ASP: o formulário de login não envia quando você pressiona Enter
-
25-09-2019 - |
Pergunta
Estou tendo um problema ao usar o <asp:login>
marcação. Quando um usuário clica no botão "Login", o formulário processa corretamente. No entanto, quando o usuário atinge a tecla Enter, o formulário se envia e não processa o login, seja informações corretas ou não. Estou usando uma combinação de Masterpages e Umbraco.
Meu código ASPX se parece com o seguinte:
<%@ Master Language="C#" MasterPageFile="/masterpages/AccountCenter.master" CodeFile="~/masterpages/Login.master.cs" Inherits="LoginPage" AutoEventWireup="true" %>
<asp:Content ContentPlaceHolderID="RunwayMasterContentPlaceHolder" runat="server">
<div class="loginBox">
<div class="AspNet-Login-TitlePanel">Account Center Login</div>
<asp:label id="output" runat="server"></asp:label>
<asp:GridView runat="server" id="GridResults" AutoGenerateColumns="true"></asp:GridView>
<asp:Login destinationpageurl="~/dashboard.aspx" ID="Login1" OnLoggedIn="onLogin" runat="server" TitleText="" FailureText="The login/password combination you provided is invalid." DisplayRememberMe="false"></asp:Login>
</div>
</asp:Content>
Na página real renderizada, vejo este JavaScript no formulário:
<form method="post" action="/dashboard.aspx?" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">
Essa função JavaScript é definida como:
<script type="text/javascript">
//<![CDATA[
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
//]]>
</script>
O JavaScript está sempre avaliando como verdadeiro quando é executado.
Solução
Minha primeira pergunta seria: qual é o primeiro botão de envio no formulário? Porque é esse que receberá a ação de envio.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow