Unpredictable: Problem mit Telefon und Radiobutton Abfrage

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!

  1. 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

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
    1. 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

      1. 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

        --
        „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
        1. 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

          1. 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

            --
            „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  2. 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

    --
    F: Was ist eigentlich aus deinem schlimmen Durchfall geworden?
    A: Mein Arzt hat mir Valium verschrieben.
    F: Und das hilft?
    A: Naja, ich mach mir immer noch in die Hose. Aber inzwischen ist es mir egal.