ASP.NET – Standardziel für die Eingabetaste innerherhalb einer Textbox

Häufig werden z.B. Formulare innerhalb von Webanwendungen benötigt. Diese bestehen oft aus mehreren Textboxen und Buttons. Viele Benutzer verwenden zum Abschluss eines Formulars die Eingabetaste, allerdings ist es ohne weitere Konfiguration dem Browser überlassen welchen Button er als Ziel für das Abschicken des Forumulars verwendet. Um diesem Problem Herr zu werden und für verschiedene Textboxen verschiedene Ziele festzulegen verwende ich folgenden Code.

Javascript:

function doClick(buttonName, e) {
	//the purpose of this function is to allow the enter key to
	//point to the correct button to click.
	var key;
	if (window.event)
		key = window.event.keyCode;     //IE
	else
		key = e.which;     //firefox
	if (key == 13) {
		//Get the button the user wants to have clicked
		var btn = document.getElementById(buttonName);
		if (btn != null) { //If we find the button click it
			btn.click();
			btn.focus();
			event.keyCode = 0
		}
	}
}

HTML-Markup:

<asp:TextBox ID="txtFilter" runat="server"></asp:TextBox>
<asp:Button ID="cmdFiltern" runat="server" Text="Filtern" OnClick="cmdFiltern_Click" />

CodeBehind (C#):

protected void Page_Load(object sender, EventArgs e)
{
	if (!IsPostBack)
		this.txtFilter.Attributes.Add("onkeypress", "doClick('" + cmdFiltern.ClientID + "',event)");
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.