BigPeter: Link als Submitbutton mit Funktion

Und zwar habe ich folgendes Problem :

Ich habe eine Form-Verschachtelung die so aussieht :]

  
<form name=\"reg\" action=\"#\" method=\"post\" onsubmit=\"return check()\">  
...  
</form>  

es gibt eine function mit dem Namen check(), welche die Eingaben der Inputfelder überprüft.

Das ganze klappt auch tadellos sofern ich einen Submit-Button nutze

  
<input type=\"submit\">  

ich bevorzuge jedoch einen Link als submit. Dieser übergeht diese Funktion aber einfach und ich bin grad zu zerfahren um selbst dahinter zu kommen wie der Link korrekt lauten muss ...
so sieht er momentan aus

  
<a href=\"javascript:document.reg.submit()\">Anmelden</a>  

Wo liegt mein Fehler ... danke für die Antworten schon jetzt :)

mfg

BigPeter

  1. [latex]Mae  govannen![/latex]

    ich bevorzuge jedoch einen Link als submit. Dieser übergeht diese Funktion aber einfach und ich bin grad zu zerfahren um selbst dahinter zu kommen wie der Link korrekt lauten muss ...
    so sieht er momentan aus

    <a href="javascript:document.reg.submit()">Anmelden</a>

      
    Ohne mich jetzt reingedacht zu haben ... eventuell documenbt.forms.reg.submit()  
      
    
    > Wo liegt mein Fehler ... danke für die Antworten schon jetzt :)  
      
    Du könntest den Button per CSS auch einfach als Link gestalten, wäre vielleicht einfacher und sinnvoller, da es dann auch ohne JS funktioniert.  
      
    Stur lächeln und winken, Männer!  
    Kai
    
    -- 
    Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken  
    in Richtung "Mess up the Web".([suit](https://forum.selfhtml.org/?t=197497&m=1324775))  
    [SelfHTML-Forum-Stylesheet](http://selfhtml.knrs.de/#h_stylesheet)
    
    1. Du könntest den Button per CSS auch einfach als Link gestalten, wäre vielleicht einfacher und sinnvoller, da es dann auch ohne JS funktioniert.

      Das ist mir auch schon eingefallen ... aber es muss doch auch einen anderen Workaround geben oder :/ ?

      1. Das ist mir auch schon eingefallen ... aber es muss doch auch einen anderen Workaround geben oder :/ ?

        ruf per Link (warum muss es eigentlich unbedingt ein Link sein?) eine Funktion auf, die wiederum check() aufruft und abhängig davon das Formular absendet oder nicht.

        1. Das ist mir auch schon eingefallen ... aber es muss doch auch einen anderen Workaround geben oder :/ ?

          ruf per Link (warum muss es eigentlich unbedingt ein Link sein?) eine Funktion auf, die wiederum check() aufruft und abhängig davon das Formular absendet oder nicht.

          und wie sinnvollerweise ?

          <a href=\"javascript:check(); document.reg.submit()\">Anmelden</a>

          hierbei überprüft er zwar geht aber dann direkt auf submit

          <a href=\"javascript:return check(); document.reg.submit()\">Anmelden</a>

          nimmt er erst gar nicht an

          ...

          ok so hats nun geklappt :

          [code lang=html<a href="javascript:document.reg.submit()" onclick="javascript:return check()">Anmelden</a>[/code]

          danke an alle für Ihre Geduld :)

          1. Mahlzeit BigPeter,

            ok so hats nun geklappt :

            [code lang=html<a href="javascript:document.reg.submit()" onclick="javascript:return check()">Anmelden</a>[/code]

            Dass das keine Lösung im eigentlichen Sinne ist, sollte klar sein. Abgesehen von Zitat 2002 hast Du hier ggf. ein Nebenläufigkeitsproblem, da Du das Absenden des Formulars eben gerade *NICHT* - wie von gast_42 vorgeschlagen - vom Ergebnis der Überprüfung abhängig gemacht hast. Was genau bereitet Dir bei einer einfachen if()-Konstruktion derartig unüberwindbare Schwierigkeiten, dass Du diverse andere (und teilweise potentiell gravierende) Probleme in Kauf nimmst?

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Hallo EKKi,

              [code lang=html<a href="javascript:document.reg.submit()" onclick="javascript:return check()">Anmelden</a>[/code]
              Dass das keine Lösung im eigentlichen Sinne ist, sollte klar sein. Abgesehen von Zitat 2002 ...

              ACK.

              hast Du hier ggf. ein Nebenläufigkeitsproblem, da Du das Absenden des Formulars eben gerade *NICHT* - wie von gast_42 vorgeschlagen - vom Ergebnis der Überprüfung abhängig gemacht hast.

              NAK. Das Verhalten ist exakt so, wie es sein soll: wenn das im onclick-Handler notierte check() false zurückgibt, wird die Standardaktion des Links, nämlich den href-Parameter zu "verarbeiten", unterdrückt.

              Ansonsten hast du natürlich recht - ein Link ist hier einfach nicht sinnvoll, wenn es mit einem umgestylten submit-Button ebensogut und semantisch besser geht. Dass das Label "javascript:" im Eventhandler überflüssig ist, kommt noch dazu.

              Ciao,
               Martin

              --
              Wer mit dem Finger droht, sollte ihn am Abzug haben, und nicht in der Nase.
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
              1. Mahlzeit Der Martin,

                NAK. Das Verhalten ist exakt so, wie es sein soll: wenn das im onclick-Handler notierte check() false zurückgibt, wird die Standardaktion des Links, nämlich den href-Parameter zu "verarbeiten", unterdrückt.

                Stimmt - hast natürlich recht. Irgendwie hatte ich das "return" wohl überlesen ... genau: das "javascript:" war schuld - das hat die Übersichtlichkeit versaut! ;-)

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      2. Mahlzeit BigPeter,

        Du könntest den Button per CSS auch einfach als Link gestalten, wäre vielleicht einfacher und sinnvoller, da es dann auch ohne JS funktioniert.

        Das ist mir auch schon eingefallen

        Und? Funktioniert's? Warum nutzt Du es dann nicht?

        aber es muss doch auch einen anderen Workaround geben oder :/ ?

        Warum *muss* es das? Immerhin wäre das die sinnvollste aller Lösungen - zumindest wäre das Formular dann auch für Nutzer ohne (funktionierendes) Javascript bedienbar.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|