Hannes  PreishuberEnter 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;">



Kategorien: Ajax;ASP.NET; 29.05.2008 08:29:16


 


Neuen Kommentar einfügen:

  Titel:   
  Name:
  E-Mail:
  Kommentar:

 
 


Kommentare


test, am 30.05.2008 22:17:31

test

test

Mario Meir-Huber, am 29.05.2008 11:50:59

Wünschte ich mir ...

Das würde ich mir auch für meine E-Banking applikation wünschen, denn da bekomme ich durch "Enter" immer ne böse Fehlermeldung :(



© Copyright 2008 ppedv AG