onkeypress BACKSPACE
Pedda
- javascript
0 Cybaer0 Pedda0 Cybaer0 Der Martin0 rfb0 Cybaer0 Der Martin0 Cybaer
0 Maxx
Hallo zusammen,
ich versuche dem Besucher einer Seite die Eingabe von Text in ein <div> zu ermöglichen...
Das ganze klappt über innerHTML auch ganz gut !
Fragt bitte nicht, warum ich das nicht über eine form und eine textarea realisiere.... ist halt so :(
Das Problem ist, dass das onkeypress-event mit dem backspace der Tastatur nicht klarkommt und in der browser-history immer eine seite zurückspringt.
Wäre schön, wenn mir jemand eine Lösung / ein workaround aufzeigen könnte !
Hier meine function (vereinfacht)
***************************************************
function getKey(evt) {
document.onkeypress = getKey;
evt = (evt) ? evt : ((event) ? event : null);
var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
var newKey="";
if (evt.keyCode==8)
alert('backspace');
else if (evt.keyCode==13)
newKey="<br>";
else if (evt.keyCode==38)
newKey="&";
else
newKey = String.fromCharCode(charCode);
displayText(newKey);
}
function displayText(newKey) {
var oldText = document.getElementById("tt").innerHTML;
var newText = oldText+""+newKey;
document.getElementById("tt").innerHTML = newText;
}
******************************************
Und der html-teil
<div id="tt" style="width:450px;height:350px;border:1px solid black;" onFocus="getKey();"></div>
******************************************
Wäre echt toll, wenn einer von euch dazu was konstruktives sagen könnte ;-)
Thnx im Voraus
Pedda
Hi,
Das Problem ist, dass das onkeypress-event mit dem backspace der Tastatur nicht klarkommt
onkeyup feuert auch bei Backspace. Allerdings feuert dieser Event nur einmalig, nicht bei Key-Repeat.
Gruß, Cybaer
Sorry Cybaer,
aber das hat mir ja nu mal GAR NICHT geholfen *g*
Hatte mich für das onkeypress entschieden, da ich damit gut das Problem der Gross-, Kleinschreibung hinbekommen hab ;-)
Und ausserdem springt der browser beim onkeyup ebenfalls in der history einen zurück !?
Aber (ernsthaft !)
Vielen Dank, dass du dich mit meinem Problem beschäftigt hast !
Gruss
Pedda
Hi,
Und ausserdem springt der browser beim onkeyup ebenfalls in der history einen zurück !?
Keine Ahnung, was Du da machst, denn ...
Aber (ernsthaft !)
Vielen Dank, dass du dich mit meinem Problem beschäftigt hast !
... isch habe mich gar nicht damit beschäftigt. =:-)
Für Backspace ist halt generell keyup sinnvoll, nicht keypress. Ansonsten muß ich aus Zeitgründen passen ... :-o
... aber einen Browser, der einfach so bei Backspace in der History springt, ist mir ohnehin nicht bekannt! =:-o
Gruß, Cybaer
Hallo,
Für Backspace ist halt generell keyup sinnvoll, nicht keypress.
warum? Dafür will mir keine Erklärung einfallen.
... aber einen Browser, der einfach so bei Backspace in der History springt, ist mir ohnehin nicht bekannt! =:-o
IE, Firefox/Win, vermutlich auch Opera/Win. Das Drücken der Backspace-Taste ist zumindest in den beiden erstgenannten gleichbedeutend mit einem Klick auf den Back-Button.
Ciao,
Martin
Moin
vermutlich auch Opera/Win.
das "vermutlich" kannst du streichen.
Gruß
rfb
Hi,
Für Backspace ist halt generell keyup sinnvoll, nicht keypress.
warum? Dafür will mir keine Erklärung einfallen.
Weil bei keypress, im Gegensatz zu keyup, nicht alle Browser feuern, wenn Backspace benutzt wird/wurde.
IE, Firefox/Win, vermutlich auch Opera/Win. Das Drücken der Backspace-Taste ist zumindest in den beiden erstgenannten gleichbedeutend mit einem Klick auf den Back-Button.
Hmm, warum habe ich mir dann bloß ALT-Left angewöhnt ... ==:-)
Gruß, Cybaer
Hallo,
Für Backspace ist halt generell keyup sinnvoll, nicht keypress.
warum? Dafür will mir keine Erklärung einfallen.
Weil bei keypress, im Gegensatz zu keyup, nicht alle Browser feuern, wenn Backspace benutzt wird/wurde.
ach so? Hmm. Wenn ich Langeweile habe, werde ich das mal selbst eruieren.
IE, Firefox/Win, vermutlich auch Opera/Win. Das Drücken der Backspace-Taste ist zumindest in den beiden erstgenannten gleichbedeutend mit einem Klick auf den Back-Button.
Hmm, warum habe ich mir dann bloß ALT-Left angewöhnt ... ==:-)
Keine Ahnung, *DIE* Kombination kannte ich wiederum noch nicht. ;-)
Kommt mir aber recht umständlich vor. Da ist ein kurzer, trockener Fingertick auf die Backspace-Taste doch einfacher, auch wenn ich's extrem selten brauche.
Ciao,
Martin
Hi,
Weil bei keypress, im Gegensatz zu keyup, nicht alle Browser feuern, wenn Backspace benutzt wird/wurde.
ach so? Hmm. Wenn ich Langeweile habe, werde ich das mal selbst eruieren.
Nimm einfach den IE (mindestens bis 6 inkl. - da wird sich vermutlich beim 7er auch nichts geändert haben). Soll weit verbreitet sein das Teil ... ;-)
Kommt mir aber recht umständlich vor.
Gewöhnung?! Und vielleicht gewöhn ich mich, nach Erlangung neuen Wissens, ja auch um. ;)
Aber immerhin bleiben dabei die Hände unten, und man muß nicht über die Tastatur greifen (wenn ich nicht tippe, liegen meine Hände eher unter der Tastatur). Außerdem funktioniert das immer; Backspace naturgemäß nicht ...
Gruß, Cybaer
Hallo,
ich versuche dem Besucher einer Seite die Eingabe von Text in ein <div> zu ermöglichen...
Das Problem ist, dass das onkeypress-event mit dem backspace der Tastatur nicht klarkommt
ohne mich mit deinem Code genauer auseinandergesetzt zu haben vermute ich, dass du 'backspace' mit "preventDefault()" ggf. noch einem zusätzlichen "stopPropagation()" verarbeiten musst.
Analog dazu ein cancelBubble=true; im IE
Ich habe vor nicht allzu langer Zeit an Methoden gearbeitet um z.B. in einem <input> nur Zahlen eingeben zu können. Die erste Version hierzu (es fehlt noch einiges) habe ich dir hier hochgeladen. Möglicherweise kannst du einige meiner Ansätze hieraus verwenden.
Grüße,
Jochen