Problem mit Telefon und Radiobutton Abfrage
Unpredictable
- javascript
Hallo,
ich habe zwei Probleme bei einem Script zum einen will ich bei einer Telfonnummer prüfen, dass nur Zahlen nethalten sind. Das schaff ich auch noch:
var chkZ = 1;
for (i = 0; i < document.Formular.Nr.value.length; ++i)
if (document.Formular.Nr.value.charAt(i) < "0" ||
document.Formular.Nr.value.charAt(i) > "9")
chkZ = -1;
if (chkZ == -1) {
alert("Bitte geben Sie eine gültige Telefonnummer ein!");
document.Formular.Nr.focus();
return false;
}
Aber ich habe dabei nicht bedacht, dass ich auch mindestens die beiden Sonder zeichen "-" und "/" erlauben muss, damit der Benutzer seine Vorwahl eingeben kann. Genau daran scheitert es im Moment. es geht einfach nicht.
Zum anderen will ich nur prüfen, ob einer der radiobutton ausgewählt ist, aber dass funktioniert auch nicht.
else if (document.Formular.Kursart.checked=true){
alert("Bitte geben Sie Ihren Kursart ein!");
return false;
}
Kann mir bitte jemand helfen, ich verzweifle zunhmend an diesem Problem.Danke!
Hello out there!
Aber ich habe dabei nicht bedacht, dass ich auch mindestens die beiden Sonder zeichen "-" und "/" erlauben muss, damit der Benutzer seine Vorwahl eingeben kann.
' ', '(' und ')' auch.
Genau daran scheitert es im Moment. es geht einfach nicht.
Entweder die Oder-Verknüfung erweitern um die anderen Zeichen oder mit regulärem Ausdruck testen.
else if (document.Formular.Kursart.checked=true)
Möchtest du zuweisen oder vergleichen?
Im Übrigen ist der Vergleich gegen 'true' völlig überflüssig; document.Formular.Kursart.checked ist bereits der boolsche Ausdruck, dessen Wert die 'if'-Anweisung auswerten soll.
See ya up the road,
Gunnar
Danke erstmal für deine Hilfe.
Ich will bei den Radiobutton einfach nur prüfen, ob überhaupt einer vom benutzer ausgewählt worden ist.
Mit deiner anderen Hilfestellung komme ich nicht so richtig zu recht, bin halt nicht der javascript crack. ich müsste bitte ungefähr wissen wie das rein Quelltext technisch aussehen würde.
Danke nochmal
Hello out there!
Ich will bei den Radiobutton einfach nur prüfen, ob überhaupt einer vom benutzer ausgewählt worden ist.
Schlechtes Konzept. Bei Radiobuttons sollte immer genau einer (vor)ausgewählt sein, auch ohne Aktion des Nutzers. (Siehe Radio-Buttons [HTML401 §17.2.1])
Und der Beschreibung von checked [SELFHTML] kannst du entnehmen, dass du nicht 'document.Formular.Kursart.checked' abfragen kannst, sondern 'document.Formular.Kursart[i].checked' für i = 0 bis document.Formular.Kursart.length - 1.
Mit deiner anderen Hilfestellung komme ich nicht so richtig zu recht, bin halt nicht der javascript crack. ich müsste bitte ungefähr wissen wie das rein Quelltext technisch aussehen würde.
Du könntest die Abfrage
if (document.Formular.Nr.value.charAt(i) < "0" ||
document.Formular.Nr.value.charAt(i) > "9")
erweitern um den Test auf Gleichheit mit den Charactercodes der anderen Zeichen.
See ya up the road,
Gunnar
Das mit den Radiobutton ist jetzt für mich geklärt!
Aber, dass mit der Telefonabfrage versteh ich immer noch nicht, wäre nett, wenn jemand mir mal den Quelltext dieser Abfrage zukomen lassen würde
Hello out there!
Aber, dass mit der Telefonabfrage versteh ich immer noch nicht,
Was genau verstehst du an „die Oder-Verknüfung erweitern um die anderen Zeichen“ und „erweitern um den Test auf Gleichheit mit den Charactercodes der anderen Zeichen“ nicht?
wäre nett, wenn jemand mir mal den Quelltext dieser Abfrage zukomen lassen würde
Hier ist _SELF_HTML.
Bist du dem Hinweis nach regulären Ausdrücken nachgegangen?
Du solltest dir unbedingt die etwas ausführlichere Dokumentation im Perl-Kapitel ansehen, besonders den Abschnitt Reguläre Ausdrücke für einzelne Zeichen.
See ya up the road,
Gunnar
Hi,
Aber ich habe dabei nicht bedacht, dass ich auch mindestens die beiden Sonder zeichen "-" und "/" erlauben muss, damit der Benutzer seine Vorwahl eingeben kann.
und bitte auch das Pluszeichen, das einer internationalen Vorwahl vorangestellt wird, z.B. +49-711-xxxxxx.
else if (document.Formular.Kursart.checked=true)
Dazu hat Gunnar schon einen wichtigen und einen weiteren, nicht weniger sinnvollen Hinweis gegeben.
alert("Bitte geben Sie Ihren Kursart ein!");
Da stimmt doch was mit der Grammatik nicht ... ?
Ciao,
Martin