ermitteln Ich möchte das Änderungsereignis eines SELECT-Elements abhängig davon, ob die [STRG] -Taste gedrückt wird, aber es nicht behandelt Arbeit.Wie der CTRL-Key-Status in der OnChange() - Handler für ein HTML-Select-Element
Hier ist, was ich habe: Ein ListBox-Steuerelement ASP.NET WebForms (das wie so mit den Optionen für ein select-Element macht (etwas vereinfacht):
<select name="ctl00$ContentPlaceHolder1$MultiselectDropDownStatus" id="ctl00_ContentPlaceHolder1_MultiselectDropDownStatus" size="7" multiple="multiple">
<option selected="selected" value="">All</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
Nun, wenn der Benutzer eine Option auswählt, I wollen etwas in Abhängigkeit vom Zustand der Strg-Taste tun, ich werde das Änderungsereignis behandeln wie folgt:.
script.AppendLine(@" $(""#" + ClientID + @""").change(function (e) {");
//....
Innerhalb des Skriptmethode ich möchte den Tastenzustand
überprüfenscript.AppendLine(@" if (e.ctrlKey) {");
script.AppendLine(@" alert(""ctr key was pressed during the click"")");
script.AppendLine(@" }");
//...
Auf diese Weise ist die e.crtlKey
immer undefined
.
Aber, wenn ich das Click-Ereignis der Listbox Steuerung direkt (nicht über das Änderungsereignis) behandeln, etwa so:
script.AppendLine(@" $(""#" + ClientID + @""").click(function (e) {");
script.AppendLine(@" if (e.ctrlKey) {");
script.AppendLine(@" alert(""ctr key was pressed during the click"")");
script.AppendLine(@" }");
Hier gibt die e.crtlKey
mir den richtigen Wert.
Warum kann ich den CTRL-Key-Status im Change-Handler nicht korrekt abrufen?
Ich arbeite gerade mit IE 11, aber es sollte auch auf anderen gängigen Browsern funktionieren.
Update: Ursprünglich wollte ich das Ereignis von mehreren Auswahlen mit dem CTRL-Tastenstatus behandeln. Ich erkannte, dass dies falsch war und jetzt habe ich das gelöst, indem ich die ausgewählten Optionen explizit gezählt habe. Diese Frage bleibt jedoch gültig und ich werde sie hier belassen: Wie kann ich den Schlüsselzustand im geänderten Handler erkennen?