JürgenB: Tastatur-Event: bei Backspace Defaulltaktion unterdrücken

Beitrag lesen

Hallo,

ich habe mal eine überarbeitete Version in meinen Testbereich hochgeladen.

Der Numblock wird jetzt unterstützt, aber das Problem mit der Backspacetaste bekomme ich nicht in den Griff. Im FF geht der Browser bei Backspace sofort in der History einen Schritt zurück. Nur wenn es die erste Seite ist, wird bei Backspace wie gewünscht das letzte Zeichen des angewählten Felds gelöscht.

Der Eventhandler sieht so aus:

document.body.onkeyup=function(e) { 
	var key = e.keyCode; 
	var wert = "";
	if(key > 48 && key < 58) wert = key-48;
	else if(key > 96 && key < 106) wert = key-96;
	console.log(key,wert,e.code);
	if(key==27) {
		var feld = document.querySelector('[name="feld"]:checked');
		if(feld) feld.checked = false;
		return true;
	}
	var feld = document.querySelector('[name="feld"]:checked + .sfeld');
	if(feld) {
		if(key==8 || key==46) feld.innerText = "";
		else feld.innerText = wert;
		check(feld);
		e.preventDefault();
		e.stopPropagation();
		return false;
	}
	feld = document.querySelector('[name="feld"]:checked + .memo');
	if(feld) {
		if(key==46) feld.innerText = "";
		else if(key==8) feld.innerText = feld.innerText.substr(0,feld.innerText.length-1);
		else feld.innerText += wert;
		e.preventDefault();
		e.stopPropagation();
		return false;
	}
	return true;
}

bei Backspace (key==8) wird der Handler mit

	e.preventDefault();
	e.stopPropagation();
	return false;

beendet.

Irgendwie sieht es so aus, als würde die Backspace-Aktion „in der History zurück“ ausgeführt, bevor mein Eventhandler greift. Gibt es da eine Möglichkeit, das zu unterbinden?

Gruß
Jürgen