Als Eingabe in Formularfeld nur Ziffern zulassen
uralthaus
- html
0 Glory0 Kai3450 gary0 Gunnar Bittersmann
Gibt es eine Möglichkeit, Eingaben in Formularfelder so zu filtern, dass nur Ziffern akzeptiert werden: In Handbüchern und im Forum bin ich nicht fündig geworden.
Gruß von
Peter Riedel
Gibt es eine Möglichkeit, Eingaben in Formularfelder so zu filtern, dass nur Ziffern akzeptiert werden: In Handbüchern und im Forum bin ich nicht fündig geworden.
Gruß von
Peter Riedel
Vielleicht so:
<script type="text/javascript">
function NurNummernBitte(obj)
{
setTimeout( function () { NurNummernBitte2(obj) }, 0);
}
function NurNummernBitte2(obj)
{
try
{
if ( obj.value.search(/\D/) != -1)
{
obj.value = oldValue;
}
else
{
oldValue = obj.value;
}
}
catch (e)
{
oldValue = obj.value;
}
}
</script>
Und dann:
<form action="da.php" method="get">
<input onkeypress="nurNummernBitte(this);">
</form>
Das ist aber quick&dirty. Am besten solltest du global events abfangen (sowohl tastatur als auch maus), gucken ob der Fokus auf das entsprechende Input gesetzt ist und dann ggf. die Eingabe auf Nichtnummern überprüfen und diese abfangen. Der Iiiihventhändler onchange wollte mich übrigens für doof verkaufen.
Gruß, Glory.
Moin!
Gibt es eine Möglichkeit, Eingaben in Formularfelder so zu filtern, dass nur Ziffern akzeptiert werden: In Handbüchern und im Forum bin ich nicht fündig geworden.
Kommt darauf an, was du willst:
Es gibt die Möglichkeit, zu prüfen, wenn
a) die Eingabe in ein Feld beendet wird, in diesem Fall kann man einfach mit einer regular Expression beim Event "onchange" arbeiten
oder
b) direkt die Eingabe einer Nicht-Ziffer unterbinden, dazu müsste etwas mehr Aufwand betrieben werden (key-event auswerten etc)
Cü,
Kai
Hallo Peter,
Zuerst brauchst du ein Eingabefeld (z. B. Postleitzahl):
<input type="text" name="Plz" size="20">
Dann musst du beim Abschicken der Daten eine Überprüfung des Feldinhaltes durchführen. Dies erreichst du, indem du beim Formularöffnen beim Händler onsubmit eine Sprungmarke definierst. Hier heisst sie chkFormular():
<form name="Formular" action="www.deine-seite.de/beispielmailerprogramm"
method="post" onsubmit="return chkFormular()">
Im JavaScript-Bereich kommt dann die eigentliche Abfrage der Eingabe.
function chkFormular() {
REM--- Zuerst ob überhaupt was eingegeben wurde ---
if (document.Formular.Plz.value == "") {
alert("Bitte PLZ eingeben!");
document.Formular.Plz.focus();
return false;
}
REM---Dann ob Zahlen eingegeben wurden ---
var chkZ = 1;
for (j = 0; j < document.Formular.Plz.value.length; ++j)
if (document.Formular.Plz.value.charAt(j) < "0" ||
document.Formular.Plz.value.charAt(j) > "9")
chkZ = -1;
if (chkZ == -1) {
alert("Platz erlaubt nur Zahlen!");
document.Formular.Plz.focus();
return false;
}
So ungefähr ;-)
Viele Grüsse
gary
PS.: Das REM--- blablabla --- ist nur eine Bemerkung von mir, und gehöhrt nicht zum Code ;-)
@@gary:
Dann musst du beim Abschicken der Daten eine Überprüfung des Feldinhaltes durchführen.
Vor allem muss beim Empfang der Daten auf dem Server eine Überprüfung durchgeführt werden. Eine clientseitige Überprüfung ist lediglich ein ZUSÄTZLICHES Gimmick. Siehe Thread Javascript und/oder Perl-Prüfungen.
PS.: Das REM--- blablabla --- ist nur eine Bemerkung von mir, und gehöhrt nicht zum Code ;-)
Bist du bei BASIC stehengeblieben? <http://de.selfhtml.org/javascript/sprache/regeln.htm#kommentare@title=Kommentare in JavaScript>.
Live long and prosper,
Gunnar
Hi Gunnar,
Vor allem muss beim Empfang der Daten auf dem Server eine Überprüfung durchgeführt werden. Eine clientseitige Überprüfung ist lediglich ein ZUSÄTZLICHES Gimmick. Siehe Thread Javascript und/oder Perl-Prüfungen.
Ja, das ist richtig :-)
Bist du bei BASIC stehengeblieben?
10 PRINT"Das währe möglich"
20 ?""
30 PRINT"Was aber sehr nostalgisch sein kann."
40 REM --- kleiner Platzhalter ---
50 FOR i= 0 TO 1001
60 PRINT"Tausend und einen Gruss...von gary"
70 NEXT i
80 END
Wer weiss denn heute noch was Bobs und Sprites sind...?
Dass man um eine Grafik über den gesamten Bildschirm von links nach rechts zu bewegen, Werte ab dreiviertel Bildschirmbreite dazuzählen musste, weil der Chip den Gesamtwert nicht bearbeiten konnte...?
Und dass Objekte aufwendig in einer Matrix berechnet werden mussten. Diese wurden in eine karrierte Tabelle eingezeichnet, und mit den Bitwerten Oben und Seitlich in Speziele Zahlen umgewandelt. Man erhielt dann Objekte, die sehr "rasterig" waren. Von GeForce X-Tausend war man Lichtjahre entfernt...
Jaja...
Gruss gary
Hi,
10 PRINT"Das währe möglich"
20 ?""
30 PRINT"Was aber sehr nostalgisch sein kann."
40 REM --- kleiner Platzhalter ---
50 FOR i= 0 TO 1001
60 PRINT"Tausend und einen Gruss...von gary"
70 NEXT i
80 END
das funktioniert sogar heute noch in VB und VBA, allerdings mit kleinen Anpassungen:
10 Debug.Print "Das währe möglich"
15 Debug.Print "'währe' wird ohne h geschrieben."
20 Debug.Print ""
30 Debug.Print "Was aber sehr nostalgisch sein kann."
40 Rem --- kleiner Platzhalter ---
50 For i = 0 To 1001
60 Debug.Print "Tausend und einen Gruss...von gary"
70 Next i
80 End
Viele Grüße
Jörg
@@uralthaus:
Gibt es eine Möglichkeit, Eingaben in Formularfelder so zu filtern, dass nur Ziffern akzeptiert werden
In HTML: nein.
Noch nicht. HTML 5 könnte so etwas mit sich bringen. [HTML5:20080113 §3.16, WebForms20:20071012 §2.4]
Live long and prosper,
Gunnar