Formular -> DropDown check?

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

  • Formular -> DropDown check?

    Hi,

    also hab in dem Forum schon mal gesucht und auch schon wenigstens ein
    script gefunden um einfach INPUT Felder eines Formulars zu prüfen. Geht auch soweit wunderbar....

    Jetzt hab ich leider ein DropDown Feld und ein Input Feld.
    Es soll eine Fehlermeldung kommen wenn beide leer sind.

    Hier mein Code:

    PHP-Code:
    <script language="JavaScript">
    function 
    checkvalues()
    {
    var 
    err=0;
        if(
    document.testform.rezeptname.value == "")
        {
            
    alert("Bitte einen Rezeptname angeben.");
            
    document.testform.rezeptname.focus();
            
    err=1;
            return 
    false;
        }
        else if(
    document.testform.kategorie_drop.value == "" && document.testform.kategorie_new.value == "")
        {
            
    alert("Es muss entweder eine vorhandene oder neue Kategorie angegeben werden.");
            
    document.testform.rezeptname.focus();
            
    err=1;
            return 
    false;
        }
    }
    </
    script
    Muss man bei Dropdown Feldern irgendwas besonderes beachten?!

    Grüße
    Tom

  • #2
    ja ... selected.index wir da angesprochen ... schau mal im selfhtml nach
    => javascript => anwendungsbeispiele => navigation selectbox ... musst
    du auf deinen fall nur anpassen.
    Kissolino.com

    Kommentar


    • #3
      Ich füge bei Dropdown-Feldern am Anfang immer ein Leerfeld ein, z.B.
      Code:
      <option value="">Bitte w&auml;hlen</option>
      Dann einfach, wie Du es schon hast mit
      Code:
      if(....value == "")
      prüfen.

      Das sieht nicht nur gut aus, das ist auch für den Anwender sehr hilfreich, weil er hier sieht, dass er etwas auswählen MUSS.
      Und ich spare mir evtl. Javascript-Code.
      Zuletzt geändert von ; 01.03.2004, 20:40.

      Kommentar


      • #4
        ja das hab ich ja auch ! funzt aber leider nicht !

        -> kategorie_drop
        is das Dropdownmenü wo er aus einer Datenbank(MySql) die Kategorien ausliest hab aber wie schon gesagt immer das erste leer.
        -> kategorie_new
        is einfach ein <input> Feld, ich will halt einfach ne Fehlermeldung wenn
        beide lehrgelassen werden das ich mir eben eine mühsamme Überprüfung mit PHP ersparen kann...

        wieso klappt das denn nicht, wenn beide Felder leer sind?

        Kommentar


        • #5
          warum hörst du nicht auf @wurzel ???

          Code:
          [color=red]//edit[/color]
          if (document.testform.kategorie_drop.item(document.testform.kategorie_drop.selectedIndex).text=="" && document.testform.kategorie_new[color=red].value[/color]=="" ) return false;
          Anmerkung:

          - mit && in Bedingung bedeutet, dass beide nicht leer sein dürfen
          - warum setzt du den Focus auf einem anderen Element als auf einem der geprüften
          - wofür ist die Variable err, err hast du in der Funktion deklariert, also lokal,
          somit existiert err nicht mehr sobald die Funktion seinen Dienst quittiert.

          als Programmierer kann/soll/darf man gerne ab und zu existierende Routine
          übernehmen, denn man muss das Rad ja auch nicht 2 mal erfinden,
          doch man soll auch verstehen was man tut, bzw. was die Routine macht,
          ob alles einen Sinn ergibt, und nicht einfach blind ALLES übernehmen,
          samt Fehler und blödsinnige Teile
          Zuletzt geändert von asp2php; 02.03.2004, 16:41.

          Kommentar


          • #6
            Hi also,

            leider funktioniert das ganze nicht :/.

            CODE:

            PHP-Code:
            <script language="JavaScript">
            function 
            checkvalues()
            {
                if(
            document.testform.rezeptname.value == "")
                {
                    
            alert("Bitte einen Rezeptname angeben.");
                    
            document.testform.rezeptname.focus();
                    return 
            false;
                }
                else if(
            document.testform.beschreibung.value == "")
                {
                    
            alert("Bitte eine Beschreibung des Rezepts angeben.");
                    
            document.testform.beschreibung.focus();
                    return 
            false;
                }
                else if(
            document.testform.zutaten.value == "")
                {
                    
            alert("Bitte Zutaten des Rezepts angeben.");
                    
            document.testform.rezeptname.focus();
                    return 
            false;
                }
                else if(
            document.testform.kategorie_drop.item(document.testform.kategorie_drop.selectedIndex).text=="" && document.testform.kategorie_new=="")
                {
                    
            alert("Es muss entweder eine vorhandene oder neue Kategorie angegeben werden.");
                    
            document.testform.kategorie_new.focus();
                    return 
            false;
                }
            }
            </
            script
            Code der Formularfelder(geht dann noch weiter, aber brauch ja nicht alles zu posten):
            PHP-Code:
            print('<form ENCTYPE="multipart/form-data" action="update.php" onSubmit="return checkvalues()" method="post" name="testform">
                         <table border"0">'
            );

            // for-Schleife zur Anzeige der Spalte "kategorie"

            print('<tr><td>Kategorie:</td><td><select size="1" name="kategorie_drop"  class="submit">Kategorie.: <option></option>');

            // Ausgabe der Einträge

            for ($i=0$i<$anzahl_zeilen1$i++)
            {
            $rn mysql_result($res1$i"kategorie");
            echo 
            "<option>$rn</option>";
            }
            print(
            '</select></td><td>Kategorie neu:</td><td><input class="submit" type="text" name="kategorie_new" value="');echo$kategorie_new;print('"></td></tr></table>
            Momentane Kategorie:<b> '
            );echo$kategorie_drop;print('</b></font> 

            Kommentar


            • #7
              Ich vermisse bei <option> das "value".

              Kommentar


              • #8
                Ich vermisse bei <option> das "value".
                wo und was vermisst du da?! Hab ich irgendwas vergessen?

                Kommentar


                • #9
                  PHP-Code:
                  for ($i=0$i<$anzahl_zeilen1$i++)
                  {
                  $rn mysql_result($res1$i"kategorie");
                  echo 
                  "<option value=\"".$rn."\">$rn</option>"# DA ZUM BEISPIEL

                  Kommentar


                  • #10
                    Was hat das mit meiner Frage bezogen auf das Javascript zu tun?


                    PHP-Code:
                    for ($i=0$i<$anzahl_zeilen1$i++)
                    {
                    $rn mysql_result($res1$i"kategorie");
                    echo 
                    "<option value=\"".$rn."\">$rn</option>"# $rn is der inhalt aus der Datenbank ist also nicht leer...

                    Kommentar


                    • #11
                      Nun ja, wie willst Du mit Javascript den value überprüfen, wenn Du ihn im Formular gar nicht angibst?

                      http://selfhtml.teamone.de/html/form...en_absendewert

                      Kommentar


                      • #12
                        achso verständlich :

                        wie müsste ich dann das abändern etwa so?:

                        Kategorie.: <option value=""></option>

                        Kommentar


                        • #13
                          So, wie ich auf der vorherigen Seite geschrieben habe.

                          Kommentar


                          • #14
                            ohhhh man MANY THXS hab endlich meinen Fehler gefunden:

                            so funzt es:

                            PHP-Code:
                            <script language="JavaScript">
                            function 
                            checkvalues()
                            {
                                if(
                            document.testform.rezeptname.value == "")
                                {
                                    
                            alert("Bitte einen Rezeptname angeben.");
                                    
                            document.testform.rezeptname.focus();
                                    return 
                            false;
                                }
                                else if(
                            document.testform.beschreibung.value == "")
                                {
                                    
                            alert("Bitte eine Beschreibung des Rezepts angeben.");
                                    
                            document.testform.beschreibung.focus();
                                    return 
                            false;
                                }
                                else if(
                            document.testform.zutaten.value == "")
                                {
                                    
                            alert("Bitte Zutaten des Rezepts angeben.");
                                    
                            document.testform.zutaten.focus();
                                    return 
                            false;
                                }
                                else if(
                            document.testform.kategorie_drop.item(document.testform.kategorie_drop.selectedIndex).value == "" && document.testform.kategorie_new.value == "")
                                {
                                    
                            alert("Es muss entweder eine vorhandene oder neue Kategorie angegeben werden.");
                                    
                            document.testform.kategorie_new.focus();
                                    return 
                            false;
                                }
                            }
                            </
                            script
                            der Value hat natürlich auch gefehlt wo er aus der Datenbank die Einträge in das Dropdonwfeld einträgt.

                            Also nochmal Danke für die Mühe!!!

                            Kommentar


                            • #15
                              Freut mich.

                              Kommentar

                              Lädt...
                              X