Javascript: Formular-Überprüfung geht nicht:

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

  • Javascript: Formular-Überprüfung geht nicht:

    Hi,

    Folgender Code funktioniert nicht:
    Code:
     <form action="/member/index.php?mode=tests&id=1" method="post" name="formular" onsubmit="return checkForm();">
    <input type="hidden" name="endwert" value="9">
    <input type="hidden" name="naechste_frage" value="0">
    <p>Denken Sie tagsüber oft an Alkohol?<br />
    <input type="radio" name="antworten[1]" value="5"> Ja, oft<br />
    <input type="radio" name="antworten[1]" value="3"> Manchmal<br />
    <input type="radio" name="antworten[1]" value="0"> Nein<br />
    <script language="JavaScript">
    <!--
    function checkForm() {
    	Fehler=false;
    	if(document.formular.antworten[1][0].checked==false && document.formular.fragen[1][1].checked==false && document.formular.fragen[1][2].checked==false){
    		Fehler=true;
    	}
    	if(Fehler) {
    		alert('Fehler!\nSie müssen erst bei allen Fragen eine Antwort waehlen');
    		return false;
    	} else {
    		return true;
    	}
    }
    // -->
    </script>
    <input name="submit" type="submit" value="Senden">
    </form>
    Ich glaube es liegt am mehrdimensionalen Array antworten[1][0] im JS-Teil. Mir fällt aber keine andere Lösung ein.

    Gruß,
    Syco
    Zuletzt geändert von syco23; 08.03.2004, 21:39.
    [COLOR=darkblue].: 1+1=23 :.[/COLOR]

  • #2
    Re: Javascript: Formular-Überprüfung geht nicht:

    Original geschrieben von syco23
    Ich glaube es liegt am mehrdimensionalen Array antworten[1][0] im JS-Teil.
    ja, dieser zugriff kann so nicht funktionieren.
    Mir fällt aber keine andere Lösung ein.
    dann schau dir unter http://selfhtml.teamone.de/javascrip...tm#allgemeines die syntax im ersten beispiel an (die nummern-schreibweise).

    oder benutze getElementsByName() für den zugriff.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Danke, wahsaga.

      ich hab mich jetzt wieder rangesetzt. Das Ergebnis (Bespielseite):

      Code:
      <h1>Trinken Sie zu viel Alkohol?</h1><p>Testen Sie, ob sie mit Alkohol umgehen k&ouml;nnen. Dieser Test richtet sich an Menschen die 
      zumindest hin und wieder Alkohol tringen und ihr Konsumverhalten richtig einsch&auml;tzen m&ouml;chten.</p><p>Seite 1 von 4</p>
      <table cellspacing="5" width="100%">
      <form action="/member/index.php?mode=tests&id=1" method="post" name="formular" onsubmit="return checkForm();">
      <input type="hidden" name="endwert" value="">
      <input type="hidden" name="form_seite" value="1">
      <tr>
      <td class="td_main"><b>Denken Sie tags&uuml;ber oft an Alkohol?</b><br />
      <input type="radio" name="antworten[0]" value="5"> Ja, oft<br />
      <input type="radio" name="antworten[0]" value="3"> Manchmal<br />
      <input type="radio" name="antworten[0]" value="0"> Nein<br />
      </td></tr><tr>
      <td class="td_main"><b>Trinken Sie Alkohol, um besser einschlafen zu k&ouml;nnen?</b><br />
      <input type="radio" name="antworten[1]" value="5"> Ja, ich kann ohne Alkohol kaum mehr einschlafen.<br />
      <input type="radio" name="antworten[1]" value="4"> Ab und zu<br />
      <input type="radio" name="antworten[1]" value="0"> Nein<br />
      </td></tr><tr>
      <td class="td_main"><b>Trinken Sie in geselligen Runden oder bei Feiern Alkohol?</b><br />
      <input type="radio" name="antworten[2]" value="0"> Nie oder nur sehr selten<br />
      <input type="radio" name="antworten[2]" value="2"> Oft, aber in Ma&szlig;en<br />
      <input type="radio" name="antworten[2]" value="4"> Meistens<br />
      <input type="radio" name="antworten[2]" value="5"> Ja, immer<br />
      </td></tr><tr>
      <td class="td_main"><b>Wie oft trinken Sie Alkoholische Getr&auml;nke?</b><br />
      <input type="radio" name="antworten[3]" value="7"> T&auml;glich<br />
      <input type="radio" name="antworten[3]" value="5"> Fast jeden Tag<br />
      <input type="radio" name="antworten[3]" value="3"> Mehrmals in der Woche<br />
      <input type="radio" name="antworten[3]" value="1"> H&ouml;chstens einmal in der Woche<br />
      <input type="radio" name="antworten[3]" value="0"> H&ouml;chstens einmal im Monat<br />
      </td></tr><tr>
      <td class="td_main"><b>Trinke Sie vor Partys oder Festen Alkohol?</b><br />
      <input type="radio" name="antworten[4]" value="3"> Manchmal<br />
      <input type="radio" name="antworten[4]" value="0"> Nein, wenn dann trinke ich erst in Gesellschaft.<br />
      <input type="radio" name="antworten[4]" value="5"> Ja, ich muss mich erst in Stimmung bringen.<br />
      </td></tr><script language="JavaScript">
      <!--
      function checkForm() {
      	Fehler=false;
      	if(document.forms[0].elements[0].checked==false && document.forms[0].elements[1].checked==false && document.forms[0].elements[2].checked==false){
      		Fehler=true;
      	}
      	if(document.forms[0].elements[3].checked==false && document.forms[0].elements[4].checked==false && document.forms[0].elements[5].checked==false){
      		Fehler=true;
      	}
      	if(document.forms[0].elements[6].checked==false && document.forms[0].elements[7].checked==false && document.forms[0].elements[8].checked==false && document.forms[0].elements[9].checked==false){
      		Fehler=true;
      	}
      	if(document.forms[0].elements[10].checked==false && document.forms[0].elements[11].checked==false && document.forms[0].elements[12].checked==false && document.forms[0].elements[13].checked==false && document.forms[0].elements[14].checked==false){
      		Fehler=true;
      	}
      	if(document.forms[0].elements[15].checked==false && document.forms[0].elements[16].checked==false && document.forms[0].elements[17].checked==false){
      		Fehler=true;
      	}
      	if(Fehler) {
      		alert('Fehler!\nSie müssen erst bei allen Fragen eine Antwort waehlen');
      		return false;
      	} else {
      		return true;
      	}
      }
      // -->
      </script>
      <tr><td><input name="submit" type="submit" value="weiter"></tr></td>
      </form>
      </table>
      Funzt aber nicht - Es kommt unabhängig davon, ob ich etwas auswähle immer die Fehlermeldung.

      EDIT:
      Code ausgebessert.
      Zuletzt geändert von syco23; 16.03.2004, 18:27.
      [COLOR=darkblue].: 1+1=23 :.[/COLOR]

      Kommentar


      • #4
        if(document.forms[0].elements[0].checked==false && document.forms[0].elements[1].checked==false

        deine formularelemente 0 und 1 sind die hidden-felder - die haben aber gar keine eigenschaft checked, also werden diese abfragen auch immer false liefern ...
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          danke

          Manchaml sieht man den Wald vor lauter Bäumen nicht.
          [COLOR=darkblue].: 1+1=23 :.[/COLOR]

          Kommentar

          Lädt...
          X