Fazer ENTER funcionar como TAB em formulário web
Problema do aluno: Trabalho com ASP.Net e a única forma de mudar o foco de um campo para o outro é usando a tecla [TAB] .
Necessidade: Passar de um campo para outro usando o [ENTER].
Solução: Desenvolvi uma função em javascript que verifica a tecla que foi pressionada e, se for [ENTER], passa o foco para o outro campo.
Abra um projeto web e arraste para o formulário os componentes abaixo:
O código-fonte gerado (Default.aspx) é:
<%@ Page Language=”VB” AutoEventWireup=”false” CodeFile=”Default.aspx.vb” Inherits=”_Default” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml” >
<head runat=”server”>
<title>Untitled Page</title>
<script type=”text/javascript” language=”javascript”>
function passaCampo(e, proximoCampo)
{
if (e.keyCode == 13)
{
e.keyCode=0
proximoCampo.focus()
}
}
</script>
</head>
<body>
<form id=”form1? runat=”server”>
<div>
Nome:
<asp:TextBox ID=”TextBox1? runat=”server”></asp:TextBox><br />
<br />
Idade:
<asp:TextBox ID=”TextBox2? runat=”server”></asp:TextBox><br />
<br />
<asp:Button ID=”Button1? runat=”server” Text=”Button” Width=”198px” /><br />
<br />
</div>
</form>
</body>
</html>
Dê um clique sobre o formulário e a janela de código (Default.aspx.vb) é aberta. Complete o código:
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
TextBox1.Attributes.Add(”onKeyPress”, “javascript:passaCampo(event,TextBox2);”)
TextBox2.Attributes.Add(”onKeyPress”, “javascript:passaCampo(event,TextBox1);”)
End Sub
End Class