Enter statt Tab Key mit ASP.NET AJAX

Benutzer sind von Windows Formularen oft gewohnt schnell per Tab durch die Eingabefelder zu springen. In HTMl Input Elementen funktioniert das so nicht.

Abhilfe gibts mit Jscript indem man das Keyup oder Keydown event behandelt und a) entweder den Tab Key simuliert oder gleich den Focus auf das Logisch nächste Element setzt. Mit Ajax kann man sehr elegant einen Handler registrieren

$addHandler($get('TextBox1'), 'keydown', TextBox1_KeyDown);

Optisch nicht so toll aber einfach ist es das Attribut im Textbox Element zu setzen. Visual Studio mosert das zwar an, es funktioniert trotzdem

<asp:TextBox ID="TextBox1" runat="server" onkeydown="universal_keyup(this)"></asp:TextBox>

Ein universeller Handler ist dann für alle Textboxen zuständig und setzt den Focus auf die nummerisch nächste Textbox.

function universal_keydown(sender,evt)

{

if (evt.keyCode == Sys.UI.Key.enter) {

// nur wenn per addHandler registriert

//sender.preventDefault();

// hier: evt.returnValue = false;

evt.returnValue = false;

var i= sender.id.substring(9,7);

i++;

$get("TextBox"+i).focus();

}

}

 

Sehr hart, kurz aber herzlich ist auch folgende Variante

onKeyDown="if(event.keyCode==13) event.keyCode=9;">

Kommentare sind geschlossen