Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit dem abarbeiten eines Javascripts (Formularüberprüfung)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit dem abarbeiten eines Javascripts (Formularüberprüfung)

    Hallo Leute, ich hab ein Formular gebaut mit Nachname, Vorname Adresse usw.

    Mittels Javascript wird überprüft, ob Nachname, Vorname und Adresse eingegeben wurden. Funktioniert soweit.
    HTML-Code:
    <script type="text/javascript">
            <!--
    function chkFormular() {
                f = document.Formular;
    
                if(!validate_radio()) {
                    alert("Bitte wählen Sie den gewünschten Veranstaltungsort aus!");
                    return false;
                }
                
                if (f.Nachname.value == "") {
                    alert("Bitte geben Sie Ihren Nachnamen ein!");
                    f.Nachname.focus();
                    return false;
                }
    
                if (f.Vorname.value == "") {
                    alert("Bitte geben Sie Ihren Vornamen ein!");
                    f.Vorname.focus();
                    return false;
                }
    
                if (f.Adresse.value == "") {
                    alert("Bitte geben Sie Ihre Adresse ein!");
                    f.Adresse.focus();
                    return false;
                }
    } //-->
    </script>
    Nun hab ich ein Problem. Wenn ich im Formular "Vorname" weg gebe, wird zwar dann der Nachname überprüft, aber NICHT mehr die Adresse. Was kann ich jetzt machen, so dass auch die Adresse überprüft wird, ohne dass ich den Bereich "if(f.Vorname..." im Javascript lösche?

    LG, Andi

  • #2
    als Quick'n'Dirty hack: prüfen ob das Formularfeld existiert. Aber eigentlich müsstest du den Abschnitt löschen, da deine Validierung ja genau darauf baut, dass ein Vorname angegeben sein muss.

    Kommentar


    • #3
      Man kann Formularprüfungen seit HTML5 übrigens direkt in HTML machen.

      Kommentar


      • #4
        Ok, ich hab dies nun mit html 5 gelöst.

        Jetzt hab ich aber noch ein weiteres Problem. Wie funktioniert das mit Checkboxen.

        Hier der Auszug aus dem html:
        HTML-Code:
          <tr>            
        <td class="label">Nächtigung:*</td>            
        <td><input class="checkbox" type="checkbox" id="checkbox" name="Nacht" value="1" />Ja                
        <input class="checkbox" type="checkbox" id="checkbox" name="Nacht" value="2" />Nein</td>
                </tr>        
        <tr>            
        <td class="label">Möchten Sie am Abendessen teilnehmen?:*</td>            
        <td><input class="checkbox" type="checkbox" id="checkbox" name="Zusatz" value="1" />Ja                
        <input class="checkbox" type="checkbox" id="checkbox" name="Zusatz" value="2" />Nein</td>        
        </tr>
        und hier der weitere Javascript-Code:
        HTML-Code:
        function chkFormular() {
                    f = document.Formular;
        
                    if (f.Koop[0].checked == true && f.Koop_nr.value == "") {
                        alert("Bitte geben Sie Ihre Beraternummer ein!");
                        f.Koop_nr.focus();
                        return false;
                    }
                    
                    if (!validate_checkbox()) { //Abfrage für Nächtigung
                        alert("Bitte geben Sie bekannt, ob Sie übernachten möchten!");
                        return false;
                    }
        
                    if (f.Anzahl_Begleitung.value.length >= 1 && f.Name_Begleitung.value == "") {
                        alert("Sie haben Begleitpersonen angegeben aber keine Namen.\n\nBitte geben Sie die Namen ein!");
                        f.Name_Begleitung.focus();
                        return false;
                    }
                    
                    if (!validate_checkbox_zusatz()) { //Abfrage für Zusatzfelder
                        alert("Bitte füllen Sie das letzte Feld aus!");
                        return false;
                    }
        }
        Ich hab zur Zeit die Checkboxen "Koop" nicht in meinem Script. Daher funktioniert auch die Überprüfung des 2., 3. und 4. IF nicht. Sobald ich aber die Checkboxen für Koop (1. IF) einbaue, funktionieren auch die weiteren überprüfungen.

        Wie kann ich das noch lösen?

        Es ist so, dass ich einmal dies und einmal das benötige, aber überprüft soll werden, welches ich gerade im Script habe.

        Kommentar


        • #5
          Checkboxen sind immer optional, nimm dafür lieber Radiobuttons.

          Prüfen, ob die Elemente auch existieren, kann man mit "typeof":
          Code:
          if (typeof f.Koop[0] !== "undefined" && f.Koop[0].checked == true && f.Koop_nr.value == "") {
           ...
          }

          Kommentar


          • #6
            Dormilich hat doch schon die Lösung genannt. Wenn du nicht sicher bist, ob ein Formularelement existiert, prüfe dessen Existenz. Um beim Eingangspost zu bleiben sieht das für den Vornamen so aus:
            Code:
            if (f.Vorname && f.Vorname.value == "") {
            Dann noch: Globale Variablen in einer Funktion sind ein absolutes No-Go. Also var f= ..

            Kommentar


            • #7
              Danke jspit für den Tipp. Ich hab die Globale Variable entfernt und überprüfe nun auch, ob das Formularelement existiert. Jetzt funktioniert alles. Danke nochmals

              LG, Andi

              Kommentar

              Lädt...
              X