Zeichen von der Eingabe ausschließen
Andreas
- javascript
Weiß jemand, wie ich verhindern kann, dass ein Formularfeld mit einem falschen Zeichen ausgefüllt/übermittelt wird?
Das Feld muss immer mit einem Punkt als Dezimaltrennzeichen ausgefüllt/übermittelt (wegen MySQL) werden, kein Komma.
Gruß,
Andreas
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®
Moin!
<form name="F1" onsubmit="onchange="checkZahl('F1','E1')" ... >
->
<form name="F1" onsubmit="checkZahl('F1','E1')" ... >
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®