Numerische Formularinhalte
Hans-Georg Felinks
- javascript
In ein Formular wird eine Stimmbezirksnummer eingetragen, in der Variablen stimmbez sind die gültigen Nummern
wie muß ich die Abfrage programmieren, daß bei einer ungültigen Nummer die genannten Meldung erscheint
var chkZ = 1;
var stimmbez = new Array(6,106,209,302,402,452,504,604);
var stbez = parseInt (document.forms[0].elements[0].value);
for(i=0;i<stimmbez.length;++i)
if ( stbez !=stimmbez[i]) chkZ = -1;
if(chkZ == -1)
{ alert(text2 +"Stimmbezirk\nist keine gültige\nStimmbezirksnummer");
document.forms[0].elements[0].select();
document.forms[0].elements[0].focus();
return false; }
dank im voraus
Hallo Hans-Georg
wie muß ich die Abfrage programmieren, daß bei einer ungültigen Nummer die genannten Meldung erscheint
1. Die Variable text2 wird in Deinem Code nirgends initialisiert...?
2. if ( stbez !=stimmbez[i]) chkZ = -1;
if(chkZ == -1)
{ alert(....
geht auch so:
if ( stbez !=stimmbez[i])
{ alert(....
3. Ich weiss nicht genau, was Du mit "Abfrage programmieren" meinst, nehme aber mal an, den Zusammenhang zwischen Formular und Eingabeueberpruefung. Dann schau dir mal <../../tedf.htm> an.
Und dann verrate mir doch noch: welches ist denn diese erste Wahl, bei der JavaScript ueber die Stimmabgabe entscheidet ??? ;-)
viele Gruesse
Stefan Muenz
Hallo Hans-Georg
wie muß ich die Abfrage programmieren, daß bei einer ungültigen Nummer die genannten Meldung erscheint
Die Variable text2 wird in Deinem Code nirgends initialisiert...?
if ( stbez !=stimmbez[i]) chkZ = -1;
if(chkZ == -1)
{ alert(....
geht auch so:
if ( stbez !=stimmbez[i])
{ alert(....Ich weiss nicht genau, was Du mit "Abfrage programmieren" meinst, nehme aber mal an, den Zusammenhang zwischen Formular und Eingabeueberpruefung. Dann schau dir mal <../../tedf.htm> an.
Und dann verrate mir doch noch: welches ist denn diese erste Wahl, bei der JavaScript ueber die Stimmabgabe entscheidet ??? ;-)
viele Gruesse
Stefan Muenz
Natürlich entscheidet JAVAsript nicht über die Wahl, aber es gibt zur Europawahl eine Repräsentative Wahlstatistik in der in den Wahllolkalen nach Alter und Geschlecht gewählt wird. Wir (Statistik und Wahlen) erfassen die Daten über Webbrowser in eine DB2 Datenbank mit anschließender Auswertung
In ein Formular wird eine Stimmbezirksnummer eingetragen, in der Variablen stimmbez sind die gültigen Nummern
wie muß ich die Abfrage programmieren, daß bei einer ungültigen Nummer die genannten Meldung erscheint
var stimmbez = new Array(6,106,209,302,402,452,504,604);
Schonmal daran gedacht, bei diesen wenigen Auswahlmoeglichkeiten eine Auswahlliste zu benutzen anstatt eines Textfeldes? Da sparst Du Dir auch die ueberpruefung.
Viele gruesse, Thomas Hieck
In ein Formular wird eine Stimmbezirksnummer eingetragen, in der Variablen stimmbez sind die gültigen Nummern
wie muß ich die Abfrage programmieren, daß bei einer ungültigen Nummer die genannten Meldung erscheintvar stimmbez = new Array(6,106,209,302,402,452,504,604);
Schonmal daran gedacht, bei diesen wenigen Auswahlmoeglichkeiten eine Auswahlliste zu benutzen anstatt eines Textfeldes? Da sparst Du Dir auch die ueberpruefung.
Viele gruesse, Thomas Hieck
hallo Thomas,
das Auswahlfeld würde ich schon nehmen, nur habe ich zum testen erstmal nur 8 Inhalte benutzt, es sind 48 Stimmbezirke, aber das Script läuft nicht richtig, auch wenn ich die 6 eingebe bekommen ich die Meldung:
var stimmbez = new Array(6,106,209,302,402,452,504,604);
var stbez = parseInt (document.forms[0].elements[0].value);
for(i=0;i<stimmbez.length;++i)
if (stbez!=stimmbez[i])
{ alert("Stimmbezirk\nist kein gültige\nStimmbezirksnummer ");
document.forms[0].elements[0].select();
document.forms[0].elements[0].focus();
return false; }
woran liegt ?
var stimmbez = new Array(6,106,209,302,402,452,504,604);
var stbez = parseInt (document.forms[0].elements[0].value);
kein Leerzeichen zwischen "parseInt" und "("
»» for(i=0;i<stimmbez.length;++i)
i++ waere hier besser
»» if (stbez!=stimmbez[i])
{ alert("Stimmbezirk\nist kein gültige\nStimmbezirksnummer ");
document.forms[0].elements[0].select();
document.forms[0].elements[0].focus();
return false; }
Hier steckt auch ein Denkfehler drin. Selbst wenn ein richtiger Stimmbezirk gewaehlt worde kommt man (stimmbez.length - 1) mal in die Verlegenheit einen Fehler angezeigt zu bekommen (ohne return und den Rest)
Viele Gruesse, Thomas Hieck
Hallo !
Habe den Quelltext abgeändert - vor geänderten Zeilen steht ein >>:
var chkZ = -1;
var stimmbez = new Array(6,106,209,302,402,452,504,604);
var stbez = parseInt (document.forms[0].elements[0].value);
for(i=0;i<stimmbez.length;++i)
{
if ( stbez ==stimmbez[i]) chkZ = 1;
}
if(chkZ == -1)
{ alert(text2 +"Stimmbezirk\nist keine gültige\nStimmbezirksnummer");
document.forms[0].elements[0].select();
document.forms[0].elements[0].focus();
return false; }
Dieses Skript geht davon aus, daß keine korrekte Nummer eingegeben wurde, deshalb wird chkZ auf -1 initialisiert.
Nun geht es die einzelnen Werte durch, und wenn der Wert gefunden wurde, wird chkZ auf 1 gesetzt, also auf "Wert gefunden". In der ursprünglichen Version lief es andersrum, d.h., sobald ein ungleicher Wert gefunden wurde (was ja bei mehreren Werten immer der Fall ist), ging das Skript davon aus, daß die Nummer nicht existierte...
Bei Fragen stehe ich gerne zur Verfügung !
mfg
H-Man