Claudia S: Mit image funktioniert oneclick nicht mehr!

Sehr geeehrte Damen und Herren

Weiss jemand warum es zu einer Obejekt Fehlermeldung kommt, sobald ich Anstelle input Type "button" img im formular setfiele oder div eingebe?
Sollte ich allerdings img "button" oder wie am Anfang input Type "image" eingeben, wird der Befehl neue Seite document.location.href=("Seite2.htm");
nicht mehr ausgeführt.

Also das Ziel wäre, durch eine Grafik im "input" und mittels onclick eine function auszulösen, die ein Cookie schreibt und am Ende automatisch die Seite wechselt - so wie es mit input Type="button / Test" tut.

Danke für den Hinweis.

Gruss Claudia

  1. sehr geehrte Dame,
    hallo Claudia,

    Weiss jemand warum es zu einer Obejekt Fehlermeldung kommt, sobald ich Anstelle input Type "button" img im formular setfiele oder div eingebe?

    Ich versuche mal, das korrekt zu schreiben, jedenfalls so, wie ich deine Frsge lese:
    ... sobald ich anstelle von <input type = "button"> innerhalb eines Formulars <input type = "setfile"> oder <input type = "div"> eingebe.
    Die Antwort ist sehr einfach: diese input-Typen existieren nicht, siehe auch http://selfhtml.teamone.de/html/referenz/elemente.htm#input

    Sollte ich allerdings img "button" oder wie am Anfang input Type "image" eingeben,

    nochmal die möglicherweise richtige Schreibung:
    sollte ich allerdings <img src = "button.gif"> oder <input type = "image"> eingeben ...
    ... dann muß irgendwo das gemeinte Bild vorhanden sein.

    wird der Befehl neue Seite document.location.href=("Seite2.htm");
    nicht mehr ausgeführt.

    Das kann ich nicht übersetzen, weil das zuviel Durcheinander ist. Einen Befehl "neue Seite" gibt es in dieser Form überhaupt nicht, document.location.href= "seite2.htm" wird aber immer ausgeführt und hat mit <input> normalerweise absolut nix zu tun.

    Kannst du so lieb sein und nochmal genau überlegen, was du hattest fragen wollen ?

    Christoph S.

    1. Hi Christoph

      Um weiteren Missverständnissen vorzubeugen weise ich dir foldenden Javascript Auszug vor:
      function stocker(form) {
      var nomcookie=form.nomcookie.value;
      var phrase=form.phrase.value;
            newCookie(nomcookie,phrase);
            newCookie("lastcookie",nomcookie+"="+phrase);

      document.location.href=("Cookie2.htm");
      }

      // --></script>

      <P></P>

      <form method="post" enctype="multipart/form-data" name="test">
       <fieldset>
       <table border="0">
          <tr>
            <td><strong>1)</strong> Tapez un <strong>nom</strong> de cookie quelconque : </td>
            <td><input size="30" Type="hidden" value="135.3" name="nomcookie" ></td>
          </tr>
          <tr>
            <td><strong>2)</strong> Tapez un <strong>contenu</strong> quelconque pour ce cookie :<strong>
            </strong></td>
            <td><input size="30" name="phrase" value="8//-<8" style="VISIBILITY: hidden"   ></td>
          </tr>
          <tr>
            <td><input SRC="E:\Kopie von public_html\Formulare\Bilder\p1010005.jpg" Type="image" ALT="Hanf" onclick=stocker(this.form); width="214" height="193" name="I2" value="8**9**8*2<" > </td>
          </tr></TR>
        </table>
      </fieldset>
      </form>

      Also sobald ich eine Grafik (Name=I2) importiere, habe ich in meinem Editor eine Fehlermeldung oder eine nicht voll ausgeführte Funktion.

      Besten Dank für deinen Einsatz.

      Lieber Gruss Claudia

      1. hallo Claudia,

        Um weiteren Missverständnissen vorzubeugen

        schon gut ;-)

        document.location.href=("Cookie2.htm");

        nimm doch hier einfach mal die Klammern weg und schau nach, was passiert ...

        Grüße

        Christoph S.

        1. Na Christoph

          document.location.href=("Cookie2.htm");
          nimm doch hier einfach mal die Klammern weg und schau nach, was passiert ...

          Erhöhte bereits meine Pulsfrequenz in guter Hoffnung-leider blieb es dabei. Bin schon seit längerem an diesem Problem, habe bisher immer nur vor mich hingeschoben.

          Sorry, im ScriptMuster steht im Type versehentlich noch image anstelle von button. Ich erwähne es deshalb, weil es unter dieser Bezeichnung einwandfrei funktioniert.

          Aufschlussreich fand ich die Seite: Formularbereich definieren von Selfhtml-Hilfe, aber eben.

          Grüße

          Claudia

          1. ...und noch einen wichtigen Hinweis habe ich vergessen: es macht einen Unterschied, ob ich die Cookie:
            normal:document.cookie=name+"="+value+";expires="+dateExp;
            oder mit String =document.cookie = "Records="+arrRecords+";expires=" + Ablauf;
            schreibe.
            In der zweiten Darstellung frisst er mir img Type"button". Damit verliere ich nur das Handzeichen beim Cursor.

            Jetzt verstehst du vielleich, warum ich nichts mehr kappiere. Ich hoffte eigentlich darauf, dass das Problem altbekannt sei....

          2. ok, Claudia,

            versuchen wirs mal mit der Tippel-Tappel-Tour:

            document.location.href=("Cookie2.htm");
            nimm doch hier einfach mal die Klammern weg und schau nach, was passiert ...
            Erhöhte bereits meine Pulsfrequenz in guter Hoffnung-leider blieb es dabei.

            Ja, war ja nur ein Teilproblem.

            Sorry, im ScriptMuster steht im Type versehentlich noch image anstelle von button. Ich erwähne es deshalb, weil es unter dieser Bezeichnung einwandfrei funktioniert.

            ähm: was ist hier das "es", und was ist "diese Bezeichnung" ?

            Aufschlussreich fand ich die Seite: Formularbereich definieren von Selfhtml-Hilfe, aber eben.

            "aber eben" ? Was fehlte dir da ?

            So, und jetzt nochmal step by step am Code deines vorangegangenen postings:

            function stocker(form) {

            ist der Parameter "form" hier zwingend nötig ?

            var nomcookie=form.nomcookie.value;
            var phrase=form.phrase.value;
                  newCookie(nomcookie,phrase);
                  newCookie("lastcookie",nomcookie+"="+phrase);

            was sollen diese beiden "newCookie"-Einträge bewirken ?
            Und BTW: ich mag die Kekse nicht und kenne viele andere Leute, die Cookies grundsätzlich nicht empfangen. Wie sollen deren Browser deine Funktion "stocker" befolgen ?

            document.location.href=("Cookie2.htm");
            }

            das muß ich zunächst so als gegeben annehmen. Daß die Klammer verkehrt ist und da nicht hingehört, hatte ich bereits angemerkt.

            <form method="post" enctype="multipart/form-data" name="test">
            <fieldset>

            hier wäre zu überlegen, ob "fieldset" nötig ist.

            <table border="0">
                <tr>
                  <td><strong>1)</strong> Tapez un <strong>nom</strong> de cookie quelconque : </td>

            <strong> entspricht einer Formatierung, die man besser mit CSS vornehmen sollte.

            <td><input size="30" Type="hidden" value="135.3" name="nomcookie" ></td>

            der Wert "135.3" wirkt ausgesprochen dubios, mag aber im Kontext der gesamten Seite korrekt sein.

            </tr>
                <tr>
                  <td><strong>2)</strong> Tapez un <strong>contenu</strong> quelconque pour ce cookie :<strong>
                  </strong></td>

            wieder das <strong>, und zuletzt steht es auch noch ohne einen Inhalt. Ist allerdings subkritisch.

            <td><input size="30" name="phrase" value="8//-<8" style="VISIBILITY: hidden"   ></td>
                </tr>
                <tr>
                  <td><input SRC="E:\Kopie von public_html\Formulare\Bilder\p1010005.jpg" Type="image" ALT="Hanf" onclick=stocker(this.form); width="214" height="193" name="I2" value="8**9**8*2<" > </td>

            hier gibts ein Kardinalproblem. Der Pfad ="E:\Kopie von public_html\Formulare\Bilder\p1010005.jpg" verweist auf eine Datei auf deinem eigenen Rechner. Wenn du dein HTML-Dokument mit diesem Javascript-Bereich hochlädst, kann diese Pfadangabe nur von jemand befolgt werden, der exakt dieselbe Rechner-Struktur hat, und bei mir gibt es zwar ein Laufwerk E:, aber kein Verzeichnis "Kopie von public_html\Formulare\Bilder", was als Verzeichnisname ohnehin arg unglücklich ist.
            Dann gibts da noch den EventHandler onClick - der ruft deine Funktion "stocker" auf. Aber was hat die für Parameter, und warum hat sie überhaupt welche ?

            </tr></TR>

            Insgesamt solltest du dir über Groß- und Kleinschreibung ein einheitliches Konzept erarbeiten.Für die Browser-Darstellung ist das nur geringfügig relevant, aber für dich ist es das schon, wegen der Lesbarkeit.

            </table>
            </fieldset>
            </form>

            Du hattest als Ziel vorgegeben, "durch eine Grafik im "input" und mittels onclick eine function auszulösen, die ein Cookie schreibt und am Ende automatisch die Seite wechselt". Es könnte wichtit sein, die entsprechende Funktionalität noch in deine function einzubauen, ungefähr so:
            if (cookie ist vorhanden) {
               top.location.href = "CookieSeite.htm"
            }

            Probier das mal so durch, es kann aber sein, daß das noch immer nicht die Fehlermeldung beseitigt. Dabei wäre es wichtig, daß du bei der nächsten Antwort die Fehlermeldung möglichst exakt kolportierst.

            Grüße aus Berlin

            Christoph S.

            btw: mir fiel grade ein, daß meine erste Jugendliebe vor unzähligen Jahren auch Claudia hieß  -  aber damals gabs noch gar keine Computer, und Javascript war noch längst nicht erfunden, seufz ...

            1. Mornig Christian

              Ich staune über deine detailierte Ausführung.

              Einmal mehr kürze ich ab im Glauben, dass ich mein Problem erkannt habe ... nach allem Durchgehen - was es nicht ist.

              Mit der Form mache ich die Werte durchsuchbar. Setzte ich anstelle Text ein Bild, bleibt er mit der Suche hängen. Er findet kein Objekt und Schlusss ist, er geht nicht mehr weiter zu value. Beim String gehe ich über den Namen, deshalb funktioniert es hablwegs.

              Nun meine grosse Frage: Siehst du eine Lösung wie ich aus diesem "Teufelskreis" komme?

              Tschüss Claudia

              1. Guten Tag

                Nach meiner nächtlichen Fehlersuche wäre ich dankbar für weitere Hilfe, wie ich in function direkt einen Value anstelle von Form mit id oder Anker oder oder anvisieren kann.

                Oder sollte und darf ich ein neues Forum eröffnen?

                Mit der Form mache ich die Werte durchsuchbar. Setzte ich anstelle Text ein Bild, bleibt er mit der Suche hängen. Er findet kein Objekt und Schlusss ist, er geht nicht mehr weiter zu value. Beim String gehe ich über den Namen, deshalb funktioniert es hablwegs.

                Nun meine grosse Frage: Siehst du eine Lösung wie ich aus diesem "Teufelskreis" komme?

                Tschüss Claudia

  2. Guten Tag

    Sobald ich image anstelle das inline Element button verwende, verursacht das Durchsuchen der Form einen Fehler. Deshalb möchte ich jetzt einen Anker setzen, der gezielt den Wert ansteuert. Bis jetzt kann die Funktion das value nicht als ein Objekt erkennen. New Cookie ruft übrigens eine weitere Funktion zum Cokkie schreiben auf.

    function stocker(natur) {
    var natur=natur.value;

    newCookie(natur+"");

    document.location.href=("Seite4.htm");
       }

    // --></script> </p>

    <table border="0">
        <tr>
          <td></a name="natur" value="<td>81</td>"><input type="hidden" size="30" name="natur" value="<td>81</td>" ></a></td>
        </tr>
        <tr>
          <td><input height=115 src="BILDERzS1/Natur.jpg" type="image" onclick="stocker();"> </td>
        </tr>
      </table>

    Nun hoffe ich, dass ich mich auf dem richtigen Pfad befinde und bedanke mich im Voraus für deine Korrektur.

    MfG Claudia