MudGuard: zahl oder buchstabe

Beitrag lesen

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.