Moin,
hab ne lösung im netz gefunden - ich posts mal - falss es einer braucht
das ist nicht wirklich eine Lösung, sie funktioniert nicht einmal zuverlässig unter den Einschränkungen, die du dir selbst gesetzt hast.
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.
\* 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".
So long,
Martin
--
Abraham sprach zu Bebraham: Kann i mal dei Cebra ham?
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(