Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular: select mit Mehrfachauswahl auf Inhalt überprüfen

Einklappen

Neue Werbung 2019

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

  • Formular: select mit Mehrfachauswahl auf Inhalt überprüfen

    Hallo zusammen,

    ich bastle gerade an einer Überprüfung der Formulareingaben mittels JavaScript und stehe da im Moment auf dem Schlauch.

    Ganz genau geht es um ein <select> Object mit Mehrfachauswahl, um die Daten an PHP weitergeben zu können wird der Inhalt als Array versendet. Und genau da entsteht das Problem:

    Code:
    <select name="beispiel[]" size="4" multiple="multiple">
    	<option>beispiel1</option>
    	<option>beispiel2</option>
    	<option>beispiel3</option>
    	<option>beispiel4</option>
    </select>
    Damit die Daten als Array versendet werden, werden die Quadratischen Klammern benötigt. Gebe ich diese im JS mit ein funktioniert die Überprüfung nicht:

    Code:
    if (document.Formular.beispiel[].value == "") {
    	alert("Keine Beispiel Auswahl getroffen!");
    	document.Formular.beispiel[].focus();
    	return false;
    }
    Entferne ich sie, sowohl im html als auch im JS funktioniert es, aber die Daten werden dann nicht mehr vollständig übergeben. Entferne ich sie nur im JS findet JS das Objekt nicht.

    Wie also kann ich es bewerkstelligen das JS nun auf Inhalt überprüft?

  • #2
    Natürlich geht das nicht. Benutze echtes DOM und nicht die Kurznotation, dann klapps auch.

    SELFHTML: JavaScript / Objektreferenz / document
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Vielen Dank für deine Antwort.

      Laut SelfHTML wäre dann folgendes richtig:

      Code:
      if (document.getElementsByName("beispiel")[0].value == "") {
      	alert("Keine beispiel Auswahl getroffen!");
      	return false;
      }
      Leider passiert auch dabei nichts.

      Kommentar


      • #4
        Die Ansprache des Elements ist richtig. Aber value wird nur von manchen Browsern als selektierter Wert interpretiert - und ganz logisch, welchen Datentyp soll das auch haben bei einem Multi-Select!

        Aber auch das steht in Selfhtml! Bitte zukünftig besser recherchieren!

        SELFHTML: JavaScript / Objektreferenz / options
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          Ich habe mir das ganze mal durchgelesen und auch verstanden wie es gehen soll.

          Code:
          if (document.forms["Formular"].elements["beispiel"].selectedIndex == -1) {
          	alert("Keine Beispiel Auswahl getroffen!");
          	return false;
          }
          Leider funktioniert es nicht. Und ich verstehe einfach nicht warum. Naja, dann muss es halt ohne JS gehen.

          *edit*

          Ich habs nun endlich hin bekommen, habe die Quadratischen klammern noch vergessen

          Code:
          if (document.forms["Formular"].elements["beispiel[]"].selectedIndex == -1) {
          	alert("Keine Beispiel Auswahl getroffen!");
          	return false;
          }

          Kommentar

          Lädt...
          X