Elmar: submit()

hello allll,

also ein kruze frage:

dachte die funktion submit() hat die selben eigenschaften wie das input type="submit" !?! (bis auf das mit mailto: und newsgorup)

habe folgendes problem:

ich muss bei einem formular so einen button gestalten:

<img src="./bild.jpg" OnClick="document.formular.submit()">

funzzt supi, nur bemerkte ich folgendes problem:

<form ...... OnSubmit="alert('Test');"> // ist später für CheckFormular()

<input type="Submit">
-> das geht
nur:

<form ...... OnSubmit="alert('Test');">
<img src="./bild.jpg" OnClick="document.formular.submit()">

geht wiederrum nicht !?!?!

hat jemand einen tipp? idee?
danke

gruss aus den bergen ;-)

elmar

  1. Hi,

    <img src="./bild.jpg" OnClick="document.formular.submit()">

    <input type="image" src="./bild.jpg" alt="Abschicken">

    Eventhandler (wie onsubmit) werden nicht aufgerufen, wenn das "Event" durch Javascript ausgelöst wird.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hi,

      <img src="./bild.jpg" OnClick="document.formular.submit()">

      <input type="image" src="./bild.jpg" alt="Abschicken">

      Eventhandler (wie onsubmit) werden nicht aufgerufen, wenn das "Event" durch Javascript ausgelöst wird.

      [....]

      ja das problem ist allerdings das im input type="image" keinerlei handles wie OnMouseOver etc. beachtet werden.

      und das sollte aus grafischen gründen schon möglich sein => somit muss ich auf document.formular.submit() gehen.

      habe jetzt versucht diese möglichkeit anzuwenden:

      <im src="./bild.jpg" OnClick="CheckFormular()">

      und in der function von CheckFormular() am ende ein
      if(checkFormualr() == true)
          document.formular.submit();

      nur kommt da einen Out of memory on line .. mledung => irgend wleche andere idee, das in dieser funktion bei true, bzw. wenn keinerlei false auftachen gleichzeit ein submit ausgeführt wird!?!?

      danke

      gruss,elmar.

      1. Hi Elmar,

        wenn Du sowohl auf ein <input type="submit"...> als auch auf <input type="image"...> verzichtest, sondern das Formular über ein <img... onClick="xxx"> abschickst, benötigst Du den onSubmit-Handler nicht.

        Du solltest ein Funktion schreiben, die onClick im Image ausgelöst wird und die dann erst mal die Formaulerangaben checkt und am Ende, wenn alles korrekt ist, den Submit macht. Sollten die Angeben nicht korrekt sein, löst Du einfach den Submit nicht aus.

        Ok?

        bluntburn

        1. Hi Elmar,

          wenn Du sowohl auf ein <input type="submit"...> als auch auf <input type="image"...> verzichtest, sondern das Formular über ein <img... onClick="xxx"> abschickst, benötigst Du den onSubmit-Handler nicht.

          Du solltest ein Funktion schreiben, die onClick im Image ausgelöst wird und die dann erst mal die Formaulerangaben checkt und am Ende, wenn alles korrekt ist, den Submit macht. Sollten die Angeben nicht korrekt sein, löst Du einfach den Submit nicht aus.

          naja das habe ich ja versucht zu probeiren, also es wird dann so ausgeführt:

          onClick="CheckFormular()"

          und in der funktion steht am schluss nach zahlreichen if() abfragen

          folgende abfrage:

          if(CheckFormualr() == true)

          document.productadd.submit();

          nur scheint das nciht ganz zu klappen => Out of memory !?

          danke

          gruss,elmar.

          1. Hi Elmar,

            definieren bitte am Anfang Deiner Funktion eine Variable, zB. checked=true. Wenn dann eine Formularangabe falscht ist, setzt Du diese Variable auf false. Am Ende überprüfst Du dann diese Variable...

            bluntburn

            --
            jeden Tag 'ne Currywurst...
            1. also hier ein kleiner auszug der funktion:

              function CheckForm() {

              if(window.document.productadd.kategorie.value == 0||
               window.document.productadd.kategorie.value == ''){
               alert('ACHTUNG\nBitte eine Kategorie auswählen');
               return false;
               }

              if(window.document.productadd.marke_input[0].checked == true &&
               (window.document.productadd.marke.value == 0||
               window.document.productadd.marke.value == '')){
               alert('ACHTUNG\nBitte eine Marke auswählen');
               return false;
               }

              if(window.document.productadd.marke_input[1].checked == true &&
               (window.document.productadd.marke_input_text.value == '')){
               alert('ACHTUNG\nBitte eine Marke eingeben');
               return false;
               }
              .
              .
              .

              if (CheckForm() == true)
               window.document.productadd.submit();

              }

              danke!
              gruss,elar.

              1. Hi Elmar,

                also

                function CheckForm() {
                   var checked=true;
                   if(window.document.productadd.kategorie.value == 0||
                   window.document.productadd.kategorie.value == ''){
                      alert('ACHTUNG\nBitte eine Kategorie auswählen');
                      checked=false;
                   }

                ...

                if(checked) window.document.productadd.submit();
                }

                Grüße,
                bluntburn

                --
                jeden Tag 'ne Currywurst...
                1. Hi Elmar,

                  also

                  function CheckForm() {
                     var checked=true;
                     if(window.document.productadd.kategorie.value == 0||
                     window.document.productadd.kategorie.value == ''){
                        alert('ACHTUNG\nBitte eine Kategorie auswählen');
                        checked=false;
                     }

                  ...

                  if(checked) window.document.productadd.submit();
                  }

                  genau ;-)

                  nochmals danke ;-)

                  glaube es ist dochnoch zu früh ;-)

                  gruss,elmar.

            2. [....]

              sorry, habe leider zu früh abgesendet...

              also habe es schon gechecked:

              einfach oben eine var variable = true setzen,

              und unten dann schaun ob sie noch immer true ist, oder shcon flase ;-)

              danke!!

              gruss,elmar.

  2. Hi Elmar,

    <form ...... OnSubmit="alert('Test');"> // ist später für CheckFormular()

    das onSubmit erwartet einen Rückgabewert. Ist dieser true, wird das Formular abgeschickt, ist er false, dann nicht.

    daher: onSubmit="return checkFunktion();"

    Deine checkFunktion() muss also true oder false zurück liefern.

    grüße,
    bluntburn

    --
    jeden Tag 'ne Currywurst...
    1. Hi Elmar nochmal,

      ich habe vergessen zu erwähnen, dass Du statt <input type="submit"...> <input type="image" src="DeinBild.gif" ...> als Submit-Button angeben musst.

      Grüße,
      bluntburn

      --
      jeden Tag 'ne Currywurst...