2016-06-14 4 views
1

Ich versuche, diese Weboberfläche so zu gestalten, dass Benutzer nur mit ihrer Tastatur navigieren und Felder eingeben/ändern können. Mein Hangup befindet sich in einem Kontrollkästchen, das seinen Wert ändern muss, wenn die Eingabetaste gedrückt wird, während das Kontrollkästchen den Fokus hat. Ich kann C# schreiben, muss nur einen Weg finden, dies in ASP.NET zu ermöglichen.Checkbox-Ereignis zum Schlagen "Enter" - ASP.NET

Wie kann ich eine Änderung im ASPX-Code vornehmen, um dieses Kontrollkästchen auf eine C# -Funktion zu zeigen, wenn die ENTER-Taste gedrückt wird, während das Kontrollkästchen den Fokus hat?

Vielen Dank im Voraus :)

<asp:CheckBox ID="CheckBox1" runat="server" BorderStyle="None" Checked="True" OnCheckedChanged="CheckBox1_CheckedChanged" Text="Billable" AutoPostBack="true"/> 

Antwort

1

Sie können die onkeydown Ereignishandler der CheckBox verarbeiten:

<asp:CheckBox ID="CheckBox1" runat="server" BorderStyle="None" 
    Checked="True" Text="Billable" AutoPostBack="true" 
    OnCheckedChanged="CheckBox1_CheckedChanged" 
    onkeydown="processKeyDown(this, event);" /> 

<script type="text/javascript"> 
    function processKeyDown(chk, e) { 
     if (e.keyCode == 13) { 
      // Find the actual check box in the CheckBox ASP.NET control 
      var chkBox = chk.getElementsByTagName('input')[0]; 
      chkBox.click(); 
      e.stopPropagation(); 
     } 
    } 
</script> 
+0

Es ist nicht in der Autofill-Liste angezeigt haben, aber ich werde versuchen, dass raus, danke. –

+0

Ich habe den Code in 'processKeyDown' modifiziert. Es simuliert einen Klick auf das Kontrollkästchen, anstatt die Eigenschaft 'checked' zu setzen. Auf diese Weise wird das Postback ausgelöst (da die CheckBox als 'AutoPostBack =" true "'). – ConnorsFan

+0

http://i0.kym-cdn.com/photos/images/facebook/000/140/900/129122614555527345.jpg –