Focus in Input-Feld

manerr

Grünschnabel
Hallo

Ich würde gerne auf einer Webseite Aktionen ausführen sobald der Nutzer eine Taste drückt. Das funktioniert auch wunderbar. Nur wenn er eben auch in ein Inputformular eine der belegten Buchstaben eingibt wird die Aktion ausgeführt.
Die Lösung wäre nun zu schauen ob die Eingabe in einem Inputfeld ausgeführt wird und falls, da nichts tun.
Wie könnte ich sowas allgemein gültig abfragen?

Vielen Dank
Manuel
 
Gegenfrage: Wie wird die Aktion ausgelöst bzw. wodurch wird die entsprechende Funktion aufgerufen?
 
Die Funktion sieht folgendermaßen aus:
Javascript:
<script type="text/javascript">
function keys(key) {
if (!key){
key = event;
key.which = key.keyCode;
}

switch(key.which){
case 90:window.open("http://www.google.de");
break;}
}
document.onkeyup = keys;</script>
 
Zuletzt bearbeitet von einem Moderator:
Du könntest eine allgemein gültige Variable nehmen und ihr immer dann wenn ein Textfeld den Fokus erhält den Wert FALSE übergeben (im anderen Fall natürlich TRUE).

Den Inhalt dieser Variablen nimmst du dann als Kriterium wie der Tastendruck ausgewertet wird.
 
Javascript:
<script type="text/javascript">
var check = false;

function keys(key) {
	if (check == false) return;

	if (!key) {
		key = event;
		key.which = key.keyCode;
	}

	switch(key.which) {
		case 90: window.open("http://www.google.de");
		break;
	}
}

document.onkeyup = keys;
</script>

<span style="width: 150px;">"Z" ohne Funktion</span><input type="text" name="text1" value="" size="20" maxlength="50" onfocus="javascript: check = false;"/>
<br />
<span style="width: 150px;">"Z" wird umgeleitet</span><input type="text" name="text2" value="" size="20" maxlength="50" onfocus="javascript: check = true;"/>

Im ersten Textfeld passiert nichts wenn die Taste Z gedrückt wird, im zweiten öffnet sich Freund GG.
 
Vielen Dank. In meinem Beispiel müsste dann aber überall "check = false" stehen und ich will nur ungern hunderte von Inputfelder ändern.
 
Genau sowas habe ich gesucht, vielen Dank.

Wie kann ich das abfragen? if (document.activeElement == '[object HTMLBodyElement]') funktioniert bei nicht?
 
Da wird immer der Wert zurückgegeben welcher bei type="" eingetragen ist, also "text", "button", "checkbox", "radio" usw.
 
Zurück