milkaherzchen: Variablen bei mouseover ändern&diese per if prüfen -> Formular

Hallo :)
Ich versuche mich grad etwas an Javascript. Nun habe ich folgendes Problem: Ich hab ein Formular, welches eine Tabelle mit vielen Bildern enthält (geslictes Bild). Per Mouseover werden dort andere Bilder reingeladen, also von einem dreckigen Pferd wirds zum sauberen Pferd.
Bisher hatte ich es einfach so und man klickte auf "Fertig", egal, ob das Pferd nun wirklich geputzt war oder nicht.

Nun möchte ich, dass per mouseover nicht nur das Bild wechselt, sondern auch eine Variable auf "yes" gesetzt wird. Am Ende sollte dann vor Absenden des Formulars überprüft werden, ob alle Variablen "yes" sind.
Meine bisherigen Codes:
FORMULAR
<form action="putzen2.php" name="document" method="post" onsubmit="return pruefe()">
<img src="http://www.rvaude.de/putzen/<?php echo $bild; ?>/teil_1.png" border="0" onmouseover=src="http://www.rvaude.de/putzen/<?php echo $bild; ?>/teil_1a.png" onmouseover="bild1('yes')">
<input type="submit" value="Fertig!"/>

(Das ist nur ein Teil des Formulars, die Tabelle und weitere Felder hab ich weggelassen, würde zu lang werden. Sowas wie dort oben hab ich noch ca. 9x für die weiteren Bilder

Und meine JavaScript Datei
<script type="text/javascript">
<!--
  var bild1;
  var bild2;
  var bild3;
  var bild4;
  var bild5;
  var bild6;
  var bild7;
  var bild8;
  var bild9;
  function bild1 (text) {
      bild1 = text;
  }
  function bild2 (text) {
      bild2 = text;
  }
  function bild3 (text) {
      bild3 = text;
  }
  function bild4 (text) {
      bild4 = text;
  }
  function bild5 (text) {
      bild5 = text;
  }
  function bild6 (text) {
      bild6 = text;
  }
  function bild7 (text) {
      bild7 = text;
  }
  function bild8 (text) {
      bild8 = text;
  }
  function bild9 (text) {
      bild9 = text;
  }

function pruefe()
   {
      if(bild1=="" || bild2=="" || bild3=="" || bild4=="" || bild5=="" || bild6=="" || bild7=="" || bild8=="" || bild9=="")
      {
         alert("Du hast das Pferd nicht komplett geputzt!");
         return false;
      }
   }
//-->
</script>

Ist wahrscheinlich ziemlich umständlich so, aber ich lern ja auch noch xD
Also meine Fehlerkonsole sagt mir keinen Fehler mehr an, aber selbst, wenn ich über kein einziges Bild gefahren bin, sagt er mir "alles klar" und setzt den Wert später über putzen2.php in der Datenbank auf 100%

Was habe ich falsch gemacht?
Ich hoffe sehr, dass mir geholfen werden kann :)
Liebe Grüße!

  1. Hi,

    Was habe ich falsch gemacht?

    wo soll ich anfangen?

    Ich hoffe sehr, dass mir geholfen werden kann :)

    Also:

    <img src="http://www.rvaude.de/putzen/<?php echo $bild; ?>/teil_1.png" border="0" onmouseover=src="http://www.rvaude.de/putzen/<?php echo $bild; ?>/teil_1a.png" onmouseover="bild1('yes')">

    1.) Niemals, niemals, *niemals* poste serverseitigen Code, wenn es um clientseitige Probleme geht! Das gesamte <?php?>-Zeug hat das absolute Potenziel, jedwede Hilfe komplett unmöglich zu machen. Poste *nur* den Code, der beim Client ankommt.

    2.) Jedes Attribut kann nur ein einziges Mal pro Element vorkommen. Zweimal onmouseover kann nicht funktionieren. Der Befehlstrenner in JavaScript ist das Semikolon.

    3.) Schreibe Deinen HTML-Code immer so, dass er - in den Grenzen der HTML-Vailidät - XHTML-kompatibel ist. Alternativ schreibe von Anfang an XHTML, das ist leichter. Setze *unbedingt* *jeden* Attributwert in Quotes.

    4.) Validiere Deine Codes.

    5.) *Validiere* *Deine* *Codes*.

    6.) Das border-Attribut dient der Darstellung, hat also in HTML nichts verloren (in XHTML noch weniger). Verwende CSS.

    7.) Bei Problemen mit einer Programmiersprache: Mache Debug-Ausgaben.

    Darüber hinaus validiere Deine Codes.

    var bild1;

    Wenn Du Variablen durchnummerierst, dann weißt Du, dass Du ein Array nehmen möchtest. Für die Funktionen gilt Ähnliches, die ersten neun sind eine einzige.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Danke für deine Antwort :)
      Ich hoffe, so ist das Formular nun valid. Doctype & so hab ich jetzt natürlich rausgelöscht

      <form action="putzen2.php" method="post" onsubmit="return pruefe()" />
      <p><img src="http://www.rvaude.de/putzen/falbe/teil_1.png" onmouseover="src='http://www.rvaude.de/putzen/falbe/teil_1a.png'.bild('0')" alt="" />
      <input type="submit" value="Fertig!"/>
      </p>

      Ich hab meine JavaScript-Datei mal geändert, deswegen hab ich oben dann auch bild('0') hingemacht

      <script type="text/javascript">
      <!--

      bilder = new Array(8);

      function bild (nummer)
        {bilder[nummer]=="yes"
        }

      function pruefe()
         {
            for (var i = 0; i < bilder.length; ++i)
             {if (bilder[i]=="yes") { }
          else
                 {alert("Du hast das Pferd nicht komplett geputzt!");
                   return false;
                 }
          }
         }
      //-->
      </script>

      An das Validieren der sonstigen Codes meiner Page muss ich mich am Wochenende mal ranmachen, danke für den Hinweis!

      1. <form action="putzen2.php" method="post" onsubmit="return pruefe()" />
        <p><img src="http://www.rvaude.de/putzen/falbe/teil_1.png" onmouseover="src='http://www.rvaude.de/putzen/falbe/teil_1a.png'.bild('0')" alt="" />
        <input type="submit" value="Fertig!"/>
        </p>

        das sollte natürlich
        onmouseover="src='http://www.rvaude.de/putzen/falbe/teil_1a.png'; bild('0')"
        heißen

        Also ich habs jetzt mal mit meinem & mit dem von molily probiert (deinen Post hab ich erst später gesehen, auch dir vielen Dank)

        Bei beiden kommt jetzt, egal wie weit man ist das Fensterchen, dass man nicht komplett geputzt hat, auch wenn ich über alle Bilder gefahren bin xD

        1. Hi,

          Also ich habs jetzt mal mit meinem & mit dem von molily probiert (deinen Post hab ich erst später gesehen, auch dir vielen Dank)

          Bei beiden kommt jetzt, egal wie weit man ist das Fensterchen, dass man nicht komplett geputzt hat, auch wenn ich über alle Bilder gefahren bin xD

          Und wir sollen raten, wie dein aktueller Code aussieht?

          MfG ChrisB

          --
          Light travels faster than sound - that's why most people appear bright until you hear them speak.
          1. Hi,

            »» Also ich habs jetzt mal mit meinem & mit dem von molily probiert (deinen Post hab ich erst später gesehen, auch dir vielen Dank)
            »»
            »» Bei beiden kommt jetzt, egal wie weit man ist das Fensterchen, dass man nicht komplett geputzt hat, auch wenn ich über alle Bilder gefahren bin xD

            Und wir sollen raten, wie dein aktueller Code aussieht?

            MfG ChrisB

            nein, der steht ja oben drin
            aber ich kann ihn gerne nochmal hier rein tun:
            FORMULAR
            <form action="putzen2.php" method="post" onsubmit="return pruefe()" />
            <p><img src="http://www.rvaude.de/putzen/falbe/teil_1.png" onmouseover="src='http://www.rvaude.de/putzen/falbe/teil_1a.png'.bild('0')" alt="" />
            <input type="submit" value="Fertig!"/>
            </p>

            JAVASCRIPT
            <script type="text/javascript">
            <!--

            bilder = new Array(8);

            function bild (nummer)
              {bilder[nummer]=="yes"
              }

            function pruefe()
               {
                  for (var i = 0; i < bilder.length; ++i)
                   {if (bilder[i]=="yes") { }
                else
                       {alert("Du hast das Pferd nicht komplett geputzt!");
                         return false;
                       }
                }
               }
            //-->
            </script>

            1. kleiner fehler

              FORMULAR
              <form action="putzen2.php" method="post" onsubmit="return pruefe()" />
              <p><img src="http://www.rvaude.de/putzen/falbe/teil_1.png" onmouseover="src='http://www.rvaude.de/putzen/falbe/teil_1a.png'; bild('0')" alt="" />
              <input type="submit" value="Fertig!"/>
              </p>

              JAVASCRIPT
              <script type="text/javascript">
              <!--

              bilder = new Array(8);

              function bild (nummer)
                {bilder[nummer]=="yes"
                }

              function pruefe()
                 {
                    for (var i = 0; i < bilder.length; ++i)
                     {if (bilder[i]=="yes") { }
                  else
                         {alert("Du hast das Pferd nicht komplett geputzt!");
                           return false;
                         }
                  }
                 }
              //-->
              </script>

              1. Mahlzeit milkaherzchen,

                <p><img src="http://www.rvaude.de/putzen/falbe/teil_1.png" onmouseover="src='http://www.rvaude.de/putzen/falbe/teil_1a.png'; bild('0')" alt="" />

                Weißt Du eigentlich, was da genau passiert, wenn jemand mit der Maus über Dein Bild fährt?

                Der http://de.selfhtml.org/javascript/sprache/variablen.htm#definieren@title=Variablen namens "src" wird ein Wert zugewiesen (der verdächtig nach einer URL aussieht - jedoch: in irgendeiner beliebigen Variable, die anschließend nie wieder genutzt wird, ist das ziemlich sinnlos) ... möchtest Du nicht viel lieber den Wert der http://de.selfhtml.org/javascript/objekte/images.htm#src@title=src-Eigenschaft des <http://de.selfhtml.org/javascript/sprache/objekte.htm#this@title=aktuellen Elements> ändern?

                Anschließend wird die Funktion namens "bild" aufgerufen und ihr ein String mit dem Inhalt "0" als Parameter übergeben.

                <script type="text/javascript">
                <!--

                Derartiges Auskommentieren von Javascript-Code ist unnötig, überflüssig und falsch.

                function bild (nummer)
                  {bilder[nummer]=="yes"
                  }

                Wenn die Funktion aufgerufen wird, wird http://de.selfhtml.org/javascript/sprache/operatoren.htm#vergleich@title=verglichen, ob ein Element des globalen Arrays den Wert "yes" hat, und ... nix! Das Ergebnis dieses Vergleichs hängt einfach so in der Luft und die Funktion ist vorbei.

                Du solltest Dir dringendst (noch einmal) die Grundlagen von Javascript aneignen!

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Danke für die Antwort :)
                  So hab ich beide Codes nun geschrieben...Kommt immer noch -egal, was ich tu- das alter-Fenster

                  <script type="text/javascript">
                  <!--

                  var bilder = new Array(8);

                  function bild (nummer)
                    { bilder[nummer] = "yes"
                    }

                  function pruefe()
                     {
                        for (var i = 0; i < bilder.length; ++i)
                         {if (!bilder[i])
                             {alert("Du hast das Pferd nicht komplett geputzt!");
                               return false;
                             }
                      }
                     }
                  -->
                  </script>

                  <p><img src="http://www.rvaude.de/putzen/falbe/teil_1.png" onmouseover="this.src='http://www.rvaude.de/putzen/falbe/teil_1a.png'; bild('0')" alt="" />

                  1. Mahlzeit milkaherzchen,

                    So hab ich beide Codes nun geschrieben...Kommt immer noch -egal, was ich tu- das alter-Fenster

                    Das ist leider keine hilfreiche Problembeschreibung. Du erwartest von Deinen Lesern, dass sie raten, was falsch sein könnte. Insbesondere habe ich das Gefühl, dass Dein Code nicht vollständig ist - hattest Du nicht etwas von mehreren Bildern geschrieben?

                    <script type="text/javascript">
                    <!--

                    Dieses Auskommentieren ist immer noch ...

                    var bilder = new Array(8);

                    function bild (nummer)
                      { bilder[nummer] = "yes"

                    Versuch's doch mal, indem Du dem entsprechenden Array-Element einfach den Wert true zuweist ... damit lässt sich später viel einfacher arbeiten. Außerdem ist es hilfreich, jede Anweisung mit einem Semikolon abzuschließen: das sorgt für bessere Lesbarkeit.

                    {if (!bilder[i])

                    Hier prüfst Du, ob der Wert des entsprechenden Array-Elements true ist - oben hattest Du aber einen String ("yes") zugewiesen ... das könnte Probleme bereiten.

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. »        {if (!bilder[i])

                      Hier prüfst Du, ob der Wert des entsprechenden Array-Elements true ist - oben hattest Du aber einen String ("yes") zugewiesen ... das könnte Probleme bereiten.

                      Nein nicht ganz, es wird geprüft ob der gesamte Ausdruck sich zu true evaluieren läßt. Da der not Operator davor steht, ist dies im Fall eines Strings, jeder Wert der ungleich eines Leerstring ist. Der String 'yes' ist hier also immer falsch, genauso wie der String 'no'. Daher ist dein Tipp einen bool'schen Wert zu verwenden auf jeden Fall richtig.

                      Struppi.

                      1. »» So hab ich beide Codes nun geschrieben...Kommt immer noch -egal, was ich tu- das alter-Fenster

                        »»

                        Das ist leider keine hilfreiche Problembeschreibung. Du erwartest von Deinen Lesern, dass sie raten, was falsch sein könnte. Insbesondere habe ich das Gefühl, dass Dein Code nicht vollständig ist - hattest Du nicht etwas von mehreren Bildern geschrieben?

                        »»
                        Naja, ich weiß nicht, wie ich das Problem sonst beschreiben soll.
                        Ich habe jetzt mal eine Testdatei angelegt:
                        http://www.rvaude.de/javascripttest.php
                        Dort seht ihr das Problem dann ja wahrscheinlich

                        Zu den vollständigen Codes...den Inhalt des "Formulars" hab ich quasi noch 9mal, weil ich 9 Bildteile hab.
                        Ich kann gerne alle 9 aufschreiben, allerdings ist das immer derselbe Code.
                        Hier nochmal alle aktuellen, nachdem ich den Wert nun auf true setze

                        <script type="text/javascript">

                        bilder = new Array(8);

                        function bild (nummer)
                          {bilder[nummer] = true;
                          }

                        function pruefe()
                           {
                              for (var i = 0; i < bilder.length; ++i)
                               {if (!bilder[i]) { }
                            else
                                   {alert("Du hast das Pferd nicht komplett geputzt!");
                                     return false;
                                   }
                            }
                           }
                        </script>

                        <form action="http://www.rvaude.de/" method="post" onsubmit="return pruefe()" />
                        <img src="http://www.rvaude.de/putzen/falbe/teil_1.png" onmouseover="this.src='http://www.rvaude.de/putzen/falbe/teil_1a.png'; bild('0')" alt="">
                        <img src="http://www.rvaude.de/putzen/falbe/teil_2.png" onmouseover="this.src='http://www.rvaude.de/putzen/falbe/teil_2a.png'; bild('1')" alt="">
                        <input type="submit" value="Fertig!"/>

                        1. » »» So hab ich beide Codes nun geschrieben...Kommt immer noch -egal, was ich tu- das alter-Fenster
                          »»
                          » Das ist leider keine hilfreiche Problembeschreibung. Du erwartest von Deinen Lesern, dass sie raten, was falsch sein könnte. Insbesondere habe ich das Gefühl, dass Dein Code nicht vollständig ist - hattest Du nicht etwas von mehreren Bildern geschrieben?

                          Das habe ich ICH nicht geschrieben????

                          Naja, ich weiß nicht, wie ich das Problem sonst beschreiben soll.
                          Ich habe jetzt mal eine Testdatei angelegt:
                          http://www.rvaude.de/javascripttest.php
                          Dort seht ihr das Problem dann ja wahrscheinlich

                          Wenn ich wüßte was das Problerm ist, vielleicht. Dort funktikoniert alles so, wie du es programmiert hast.

                          Struppi.

                          1. »» » »» So hab ich beide Codes nun geschrieben...Kommt immer noch -egal, was ich tu- das alter-Fenster
                            »» »»
                            »» » Das ist leider keine hilfreiche Problembeschreibung. Du erwartest von Deinen Lesern, dass sie raten, was falsch sein könnte. Insbesondere habe ich das Gefühl, dass Dein Code nicht vollständig ist - hattest Du nicht etwas von mehreren Bildern geschrieben?

                            Das habe ich ICH nicht geschrieben????

                            ich weiß. irgendwie finde ich das mit dem zitieren in diesem forum sowieso komisch, ich kenns vom wbb nur, dass drüber noch der name steht, also von dem der name, von dem das zitat is...whatever

                            »» Naja, ich weiß nicht, wie ich das Problem sonst beschreiben soll.
                            »» Ich habe jetzt mal eine Testdatei angelegt:
                            »» http://www.rvaude.de/javascripttest.php
                            »» Dort seht ihr das Problem dann ja wahrscheinlich

                            Wenn ich wüßte was das Problerm ist, vielleicht. Dort funktikoniert alles so, wie du es programmiert hast.

                            Struppi.

                            ``http://www.rvaude.de/javascripttest.php
                            auf dieser seite sollte mein script funktionieren. natürlich klappt es so, wie es programmiert ist, aber das ist ja falsch.
                            oben hab ich mehrere male geschrieben, dass sich IMMER dieses alert-fenster öffnet, egal ob man alles, keins oder ein teil mit der maus überfahren hat. wenn aber ALLE überfahren worden sind, sollte sich KEINS mehr öffnen und man soll weitergeleitet werden auf ne php-seite, wo dann was mit ner datenbank passiert

                            genau deswegen poste ich ja jetzt nochmal alle codes & sage, dass ich außer dieser "beobachtung" nix in der fehlerkonsole hab und deswegen nich weiß, wo was falsch is, weswegen ich hier hilfe suche.

                            <script type="text/javascript">

                            bilder = new Array(8);

                            function bild (nummer)
                              {bilder[nummer] = true;
                              }

                            function pruefe()
                               {
                                  for (var i = 0; i < bilder.length; ++i)
                                   {if (!bilder[i]) { }
                                else
                                       {alert("Du hast das Pferd nicht komplett geputzt!");
                                         return false;
                                       }
                                }
                               }
                            </script>

                            <form action="http://www.rvaude.de/" method="post" onsubmit="return pruefe()" />
                            <img src="http://www.rvaude.de/putzen/falbe/teil_1.png" onmouseover="this.src='http://www.rvaude.de/putzen/falbe/teil_1a.png'; bild('0')" alt="">
                            <img src="http://www.rvaude.de/putzen/falbe/teil_2.png" onmouseover="this.src='http://www.rvaude.de/putzen/falbe/teil_2a.png'; bild('1')" alt="">
                            <input type="submit" value="Fertig!"/>

                            Herzlichen Dank

                            1. ich weiß. irgendwie finde ich das mit dem zitieren in diesem forum sowieso komisch, ich kenns vom wbb nur, dass drüber noch der name steht, also von dem der name, von dem das zitat is...whatever

                              komisch? Du musst nur das stehen lassen, worauf du antworten möchtest und den Rest löscht du. Damit muss aber das Zitatzeichen stehen bleiben. Meiner Meinung nach ist das wesntlich einfacher als anderswo.

                              oben hab ich mehrere male geschrieben, dass sich IMMER dieses alert-fenster öffnet, egal ob man alles, keins oder ein teil mit der maus überfahren hat. wenn aber ALLE überfahren worden sind, sollte sich KEINS mehr öffnen und man soll weitergeleitet werden auf ne php-seite, wo dann was mit ner datenbank passiert

                              Du hast 2 Bilder eingebunden, aber dein Array hat acht Elemente, also muss das alert Fenster aufgehen, da immer mindestens 6 Elemente im Array undefined sind.

                              bilder = new Array(8);

                              hier definierst du die acht Elemente, warum?

                              Struppi.

                              1. »» oben hab ich mehrere male geschrieben, dass sich IMMER dieses alert-fenster öffnet, egal ob man alles, keins oder ein teil mit der maus überfahren hat. wenn aber ALLE überfahren worden sind, sollte sich KEINS mehr öffnen und man soll weitergeleitet werden auf ne php-seite, wo dann was mit ner datenbank passiert

                                Du hast 2 Bilder eingebunden, aber dein Array hat acht Elemente, also muss das alert Fenster aufgehen, da immer mindestens 6 Elemente im Array undefined sind.

                                Nein, ich hab dieses ja noch weitere Male. Insgesamt habe ich neun Bilder, d.h. dass bild('0') bis bild('8') beim überfahren der einzelnen bilder aufgerufen wird. ich wollte nur nicht 9mal denselben code reinstellen, da bis auf die Zahl in bild('X') alles gleich ist. das würde hier wohl zu lang werden....

                                »»   bilder = new Array(8);

                                hier definierst du die acht Elemente, warum?

                                Struppi.

                                ich hab 9 bilder, ein array fängt bei 0 an, also 8 elemente
                                irgendwoher muss er ja wissen, wie viele elemente insgesamt auf true sein müssen oder denk ich da falsch?

                                1. » Du hast 2 Bilder eingebunden, aber dein Array hat acht Elemente, also muss das alert Fenster aufgehen, da immer mindestens 6 Elemente im Array undefined sind.
                                  »
                                  Nein, ich hab dieses ja noch weitere Male. Insgesamt habe ich neun Bilder, d.h. dass bild('0') bis bild('8') beim überfahren der einzelnen bilder aufgerufen wird. ich wollte nur nicht 9mal denselben code reinstellen, da bis auf die Zahl in bild('X') alles gleich ist. das würde hier wohl zu lang werden....

                                  Ja gut, aber dein Beispiel kann nicht funktionieren, weil in dem Beispiel hast du definitiv nur zwei Bilder.

                                  » »»   bilder = new Array(8);
                                  »
                                  » hier definierst du die acht Elemente, warum?
                                  »
                                  » Struppi.
                                  ich hab 9 bilder, ein array fängt bei 0 an, also 8 elemente
                                  irgendwoher muss er ja wissen, wie viele elemente insgesamt auf true sein müssen oder denk ich da falsch?

                                  Nein, wenn du neun Bilder hast, dann denkst du richtig.

                                  Struppi.

                                  1. »» » »»   bilder = new Array(8);
                                    »» »
                                    »» » hier definierst du die acht Elemente, warum?
                                    »» »
                                    »» » Struppi.
                                    »» ich hab 9 bilder, ein array fängt bei 0 an, also 8 elemente
                                    »» irgendwoher muss er ja wissen, wie viele elemente insgesamt auf true sein müssen oder denk ich da falsch?

                                    Nein, wenn du neun Bilder hast, dann denkst du richtig.

                                    Struppi.

                                    Also müsste ich new Array(9) schreiben?

                                    1. ok danke an alle Helfer, besonders an Struppi :)
                                      es klappt nun alles perfekt =)

                2. onmouseover=" src = 'http://www.rvaude.de/putzen/falbe/teil_1a.png' "

                  Der http://de.selfhtml.org/javascript/sprache/variablen.htm#definieren@title=Variablen namens "src" wird ein Wert zugewiesen (der verdächtig nach einer URL aussieht - jedoch: in irgendeiner beliebigen Variable, die anschließend nie wieder genutzt wird, ist das ziemlich sinnlos)

                  Das ist so nicht richtig, siehe Scope-Chain bei Inline-Event-Handlern. src = "uri" ist in diesem Kontext identisch mit this.src = "uri".

                  Mathias

  2. var bild1;
    function bild1 (text) {
         bild1 = text;
    }

    Du überschreibst hier die Funktion mit einem String, was zwar funktioniert, aber beim erneuten Mouseover und damit beim nächsten Aufruf von bild1() gibts einen JavaScript-Fehler.

    Arbeite doch mit einem Array:

    var geputzteTeile = new Array();

    Im HTML:

    <img src="1.png" onmouseover=" this.src = '1a.png'; geputzteTeile[1] = true; ">  
    <img src="2.png" onmouseover=" this.src = '2a.png'; geputzteTeile[2] = true; ">
    

    usw.

    Die Überprüfung:

    function pruefe () {  
       var alleTeileGeputzt = true;  
       // Durchlaufe den Array  
       for (var i = 1; i <= geputzteTeile.length; i++) {  
          if (!geputzteTeile[i]) {  
             alert("Du hast das Pferd nicht komplett geputzt!");  
             return false;  
          }  
       }  
    }
    

    Du brauchst dann weder neun Variable noch neun Funktionen.

    Mathias

  3. »» So hab ich beide Codes nun geschrieben...Kommt immer noch -egal, was ich tu- das alter-Fenster

    Das ist leider keine hilfreiche Problembeschreibung. Du erwartest von Deinen Lesern, dass sie raten, was falsch sein könnte. Insbesondere habe ich das Gefühl, dass Dein Code nicht vollständig ist - hattest Du nicht etwas von mehreren Bildern geschrieben?

    Naja, ich weiß nicht, wie ich das Problem sonst beschreiben soll.
    Ich habe jetzt mal eine Testdatei angelegt:
    http://www.rvaude.de/javascripttest.php
    Dort seht ihr das Problem dann ja wahrscheinlich

    Zu den vollständigen Codes...den Inhalt des "Formulars" hab ich quasi noch 9mal, weil ich 9 Bildteile hab.
    Ich kann gerne alle 9 aufschreiben, allerdings ist das immer derselbe Code.
    Hier nochmal alle aktuellen, nachdem ich den Wert nun auf true setze

    <script type="text/javascript">

    bilder = new Array(8);

    function bild (nummer)
      {bilder[nummer] = true;
      }

    function pruefe()
       {
          for (var i = 0; i < bilder.length; ++i)
           {if (!bilder[i]) { }
        else
               {alert("Du hast das Pferd nicht komplett geputzt!");
                 return false;
               }
        }
       }
    </script>

    <form action="http://www.rvaude.de/" method="post" onsubmit="return pruefe()" />
    <img src="http://www.rvaude.de/putzen/falbe/teil_1.png" onmouseover="this.src='http://www.rvaude.de/putzen/falbe/teil_1a.png'; bild('0')" alt="">
    <img src="http://www.rvaude.de/putzen/falbe/teil_2.png" onmouseover="this.src='http://www.rvaude.de/putzen/falbe/teil_2a.png'; bild('1')" alt="">
    <input type="submit" value="Fertig!"/>

    1. Hi,

      Naja, ich weiß nicht, wie ich das Problem sonst beschreiben soll.

      Auf jeden Fall nicht doppelt.

      MfG ChrisB

      --
      Light travels faster than sound - that's why most people appear bright until you hear them speak.