Pfeil-Steuerung in einem Formular: Browser soll nicht scrollen!!

DataFox

Erfahrenes Mitglied
Hey Leute

ich werde noch total bekloppt. Ich habe ein Formular gebaut, in dem auf jedem input-element ein onkeyup-Event registriert ist. Wenn der Benutzer die Pfeiltaste nach oben oder unten betätigt, gelangt er zum nächsten Formulareingabefeld. Hat einen guten Grund warum ich das so mache, und nicht mit Tab!

Im Opera passiert nun was ganz blödes: Der scrollt hoch! Im Prinzip die gleiche Aktion die passiert, wenn man im Opera normal die Pfeiltaste nach oben oder unten benutzt.

Ich kann zwar auf document-ebene dieses "fehlverhalten" unterbinden, nicht aber wenn die Pfeiltaste in einem INPUT-Feld gedrückt wurde!!

Code:
function handleKeyDown(e) {
	if(!e) e = window.event;
	var code;
	if (e.keyCode) code = e.keyCode; // IE
	if (e.which) code = e.which; // andere Browser

	if(code == 38) {
		if(e.preventDefault) {
			e.preventDefault();
		}
		if(e.stopPropagation) {
			e.stopPropagation();
		}
		return false;
	}
}  

if (document.addEventListener) {
	document.addEventListener("keypress", handleKeyDown, false);
} else {
	document.attachEvent("onkeypress", handleKeyDown);
}

Kurios: Der scrollt nur hoch. Wenn ich die Pfeiltaste nach unten drücke, scrollt der nicht runter. Opera scheint einen fiesen Bug zu haben.

Ich habe schon alles probiert, mit return false; bei onkeyup, onkeydown, onkeypress. direkt am INPUT registriert, oder am document. oder beides. Nichts hilft! Wie kann ich verhindern, dass das Browserfenster im Opera hoch scrollt, wenn ich die Pfeiltaste in einem Input-Feld nach oben drücke?

thx
 
Zuletzt bearbeitet:
Ich benutze Version 9.21.

Der scheint einen sehr ernst zu nehmenden Bug zu haben, zumal das Scrollen nur bei Pfeiltaste-Hoch passiert. Wenn ich ganz normal in ein Dokument klicke (nicht auf ein Input-Feld, sondern einfach nur in den BODY) dann scrollt er mit den Pfeiltasten rauf und runter.

Das Verhalten kann ich hier komplett unterdrücken.

Wenn ich aber in einem Input-Feld bin, scrollt er nur rauf! Und das Verhalten kann ich nicht unterdrücken.
 
Hi,

vielleichst solltest du mal deine "betagte" Opera-Version updaten, denn "9.21" liegt doch schon eine ganze Weile zurück - aktuell ist die Version "9.63" erhältlich.

mfg Maik
 

Neue Beiträge

Zurück