Hi,
function checkKey(objInput){
// Neues Zeichen aus Gesamtinhalt ermitteln
var strCheck = objInput.value;
strCheck = strCheck.substring((strCheck.length-1), strCheck.length);// Falls es sich nicht um eine Ziffer handelt
if(strCheck.search(/[0-9]/) == -1){
// Falls das Feld leer ist
if(objInput.value == "") return;// Letztes Zeichen entfernen
objInput.value = objInput.value.substr(0, (objInput.value.length-1));/* Falls bei Fehleingabe gesamter Inhalt gelöscht werden soll -> nächste Zeile auskommentieren */
//objInput.value = "";
}
}
>
> Problemszenarien:
> \* Copy & Paste per Maus/Kontextmenü: Da wird onkeyup gar nicht ausgelöst, also auch
> nichts gecheckt. Jeder beliebige String kann ungeprüft eingefügt werden.
> \* Copy & Paste per Tastatur: Ich füge "27T300" ein, onkeyup löst aus, deine checkKey()
> erkennt das falsche Zeichen, schneidet aber stur das letzte Zeichen ab; übrig bleibt
> "27T30" im Eingabefeld.
Nein, es erkennt den Fehler nicht. Denn es wird ja nur das letzte Zeichen angeguckt.
wegen
> > strCheck = strCheck.substring((strCheck.length-1), strCheck.length);
> \* Editieren der Eingabe: Ich gebe "20382" ein, gehe dann mit dem Cursor drei Stellen
> nach links und ergänze ein "\*". checkKey() erkennt abermals einen Fehler, schneidet
> das letzte Zeichen ab, übrig bleibt "20\*38".
dito. Der Fehler wird nicht erkannt.
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)
[O o ostern ...](http://ostereier.andreas-waechter.de/)
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.