fastix®: Zeichen von der Eingabe ausschließen

Beitrag lesen

Moin!

Weiß jemand, wie ich verhindern kann, dass ein Formularfeld mit einem falschen Zeichen ausgefüllt/übermittelt wird?

Gar nicht. Die Formularelemente kennen keine Einschränkungen.
Selbstverständlich kannst Du aber die Eingaben prüfen. Allerdings musst Du das, wenn Du dies mit JS vornimmst zweimal machen: JS kann abgeschaltet sein, also nochmals serverseitig prüfen!

Das Feld muss immer mit einem Punkt als Dezimaltrennzeichen ausgefüllt/übermittelt (wegen MySQL) werden, kein Komma.

anz einfache "Prüfung":

Tausche kurzerhand jedes "," gegen einen "." und teste danach ob die mit 1.0 multiplizierte Variable gleich der eingebenen Variable (nach dem Tausch) ist. Wenn ja-> ok, wenn nein-> zurückweisen.

in js:

<script type="text/javascript">

funktion komma2point(str) {
   str=str.replace(/,/, ".");
   /* replace ist eine Methode, die auf strings angewndet werden kann
      Sie erwartet als Parameter einen Regex für das was und den String
      gegen welchen ausgetauscht werden soll.
   */
   return str;
}

funktion testAufZahl(str) {
   /* Diese Funktion gibt wahr oder falsch zurück, wenn der übergebene Wert eine Zahl ist.
   if (zahl==zahl*1.0) {
      return TRUE;
   } else {
      return FALSE;
   }
}

/* Jetzt musst Du diese Funktionen nur noch auf Dein Formular anwenden. */

function checkZahl(form,element) {
  zahl = document.forms[form].elements[element].value;
  zahl = komma2point(zahl);
  if (testAufZahl(zahl)) {
     document.forms[0].submit()
  } else {
     alert("Geben Sie eine Zahl ein!");
  }
}
</script>

Ach ja: Natürlich muss die Prüfung ausgelöst werden:
Also entweder:

<form name="F1"....>
<input type="text" name="E1" onchange="checkZahl('F1','E1');">
</form>

oder:

<form name="F1" onsubmit="onchange="checkZahl('F1','E1')" ... >
<input type="text" name="E1">
<input type="submit">
</form>

Ich erinnere daran, daß die gleiche Prüfung serverseitig stattfinden muss!

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.