js multiple-Auswahl kontrollieren

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

  • js multiple-Auswahl kontrollieren

    Hallo,

    ich benötige für mein PHP Formular ein JavaScript, das mir die Anzahl der Auswahl einer Muliple-Selectbox begrenzt. Ich bin nicht so sehr der JS-Checker, deshalb hoffe ich, dass ich hier Hilfe finden werde.

    Hier mein Formualr:
    Wenn der User auf den Submit-Button klickt, dann soll zuerst überprüft werden (onSubmit), welchen Eintrag der User als "produkt"ausgewählt hat. Je nachdem, dürfen nur 2, 3, 4 oder 6 Einträge aus "karten[]" weiter an die anzeige.php gereicht werden.
    PHP-Code:
    <form action="anzeige.php" method="post" name="form_wk" onSubmit="return checkWK();">

    <
    select name="produkt" style="width:100px; height:20px">
    <
    option>Bitte wählen...</option>
    <
    option value="WK-2">2 Blatt</option>
    <
    option value="WK-3">3 Blatt</option>
    <
    option value="WK-4">4 Blatt</option>
    <
    option value="WK-6">6 Blatt</option>
    </
    select>

    Auswahl (Halten Sie die Strg-Taste gedrückt)<br>
    <
    select name="karten[]" size="5" style="width:225px;" multiple>
    <
    option value="01">01</option>
    <
    option value="02">02</option>
    <
    option value="03">03</option>
    <
    option value="04">04</option>
    <
    option value="05">05</option>
    <
    option value="06">06</option>
    <
    option value="07">07</option>
    </
    select>

    <
    input type="submit" name="subm" value="Hinzufügen">
    </
    form
    Jetzt brauche ich eine Funktion checkWK(); die mir den Eintag aus "produkt" überprüft und die Länge des karten-Arrays begrenzt.
    Und mir einen Alert ausgibt, ob ich zuviel oder zuwenig Einträge ausgewählt habe...sprich - der User darf nur exakt soviele Einträge aus der karten-Selectbox auswählen, wie er in der produkt-selectbox ausgewählt hat.

    Weiss jemand wie man das am besten lösen kann?
    Zuletzt geändert von nilitsch; 18.04.2004, 18:15.
    Die Zeit vergeht nicht schneller als früher,
    aber wir laufen eiliger an ihr vorbei.

  • #2
    du kennst doch schon:
    - if/else
    - length
    - < >
    - alert

    was willst du noch... ?
    Kissolino.com

    Kommentar


    • #3
      wie kann ich auf die Einträge einer multiple-Selectbox in JS zugreifen?

      und dann so??

      PHP-Code:
      if(document.form.produkt.value=="2Blatt"size=2
      if(
      document.form.produkt.value=="3Blatt"size=3;
      if(
      document.form.produkt.value=="4Blatt"size=4;
      if(
      document.form.produkt.value=="6Blatt"size=6;

      if(
      document.form.karten.length>size || document.form.karten.length<size)
      alert("Bitte wählen Sie genau"+size+"Eintrage aus!"); 
      Die Zeit vergeht nicht schneller als früher,
      aber wir laufen eiliger an ihr vorbei.

      Kommentar


      • #4
        solltest du nicht besser mit
        Code:
        this.form.produkt.options[this.form.produkt.options.selectedIndex].value
        arbeiten? ... und was stand noch gleich in den values von produkt?
        Kissolino.com

        Kommentar


        • #5
          Ich bekomme das mit dem multiple_Select nicht hin
          Wie kann ich auf die ausgewählten Elemente zugreifen? Bzw. auf die Länge des Arrays karten[] zugreifen???
          Bei
          alert(document.form.karten.length); oder
          alert(document.form.karten[].length); oder
          alert(document.form.karten.value.length); oder
          alert(document.form.karten[].value.length); oder
          bekomme ich keine Ausgabe zurück.


          this.form.produkt.options[this.form.produkt.options.selectedIndex].value
          Und wenn ich
          if(this.form.produkt.value=="WK-2") size=2;
          anstelle von
          if(document.form.produkt.value=="WK-2") size=2;
          schreibe, dann gibt er mir ebenfalls keine Ausgabe (bei einem alert(size); ) zurück.
          Zuletzt geändert von nilitsch; 18.04.2004, 22:57.
          Die Zeit vergeht nicht schneller als früher,
          aber wir laufen eiliger an ihr vorbei.

          Kommentar


          • #6
            Original geschrieben von nilitsch
            Ich bekomme das mit dem multiple_Select nicht hin
            Wie kann ich auf die ausgewählten Elemente zugreifen? Bzw. auf die Länge des Arrays karten[] zugreifen???
            wie bitte kommst du denn darauf, dass karten[] ein array wäre?
            du hast ein select mit diesem namen benannt - das macht es aber noch lange nicht zu einem array.
            weil die eckigen klammern in JS aber die notation für ein array darstellen, kannst du nicht einfach per document.form.karten[] darauf zugreifen.

            wie du es richtig machst, steht hier (beachte: für # kannst du nicht nur die nummer, sondern auch den namen eines elementes einsetzen).

            Und wenn ich
            if(this.form.produkt.value=="WK-2") size=2;
            anstelle von
            if(document.form.produkt.value=="WK-2") size=2;
            schreibe, dann gibt er mir ebenfalls keine Ausgabe (bei einem alert(size); ) zurück.
            himmel, was für eine rumpfuscherei betreibst du denn da eigentlich?
            wie zum henker kommst du denn darauf, dass ein select in JS eine eigenschaft value hätte?

            lies dir doch erst mal http://selfhtml.teamone.de/javascrip...te/options.htm aufmerksam durch, um wenigstens halbwegs zu wissen, was du tust.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ok...danke schön an dieser Stelle. Ich habe es hinbekommen.
              Die Zeit vergeht nicht schneller als früher,
              aber wir laufen eiliger an ihr vorbei.

              Kommentar

              Lädt...
              X