kein submit bei onclick="this.disabled=true"?

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

  • kein submit bei onclick="this.disabled=true"?

    Hallo,

    ich hatte versucht mehrfaches submit direkt beim submit button durch
    onClick="this.disabled=true" zu verhindern - offenbar findet dann aber auch beim ersten klick gar kein submit mehr statt.

    Habe es auch mit einer funktion versucht die zuerst submit(); aufruft und danach den button disabled - selbes ergebnis.

    Letztlich habe ich mir dann mit
    onClick="this.style.display='none';"
    beholfen.

    Ich frage mich aber dennoch warum es mit disablen nicht funktioniert da das imho die schönere Lösung wäre, konnte dazu auch nichts im Forum finden...

  • #2
    ganz einfach, wenn du formular abschickst, wird die seite ja neu geladen. dann ist das disabled wieder hops.

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Ja das ist schon klar, dann ist der Button wieder sichtbar - darf er auch, für den Fall dass die Prüfung der Daten erfolgreich war landen wir eh auf einer anderen Seite und nicht wieder auf der selben.

      Aber mein Problem ist ein ganz anderes: es wird kein Submit mehr durchgeführt (es kommen zumindest keine Post Parameter an) wenn ich den submit button per onclick disable.
      Setze ich ihn nur auf invisible per onclick dann wird der Submit durchgeführt.

      Als würde die bereits angestoßene submit() Funktion durch das disablen des Buttons abgebrochen.

      Kommentar


      • #4
        Probiere mal so:

        onclick="this.disabled=true; return true;"

        Kommentar


        • #5
          damit ich das verstehe. jemand klickt auf den submit-button, dann erfolgt eine überprüfung per js(?) und wenn die erfolgreich ist, soll das formular abgesendet werden. richtig so?

          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Zitat von phobia Beitrag anzeigen
            Aber mein Problem ist ein ganz anderes: es wird kein Submit mehr durchgeführt (es kommen zumindest keine Post Parameter an)
            Ja was denn jetzt, wird das Formular gar nicht mehr abgeschickt - oder wird es sehr wohl abgeschickt, aber dein serverseitiges Script nimmt an, es bekäme keine POST-Daten mehr übermittelt?
            Da musst du schon genauer differenzieren, sonst taugt deine Problembeschreibung wenig.

            Wenn letzteres - dann wertet dein Script vermutlich den Wert des Submitbuttons aus, und entscheidet an hand dessen, ob es POST-Daten zu verarbeiten hat oder nicht. Aber wenn du den Button disablest, dann wird natürlich kein name=value für diesen mehr übermittelt ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Also das Formular ist im Template welches von einer .php Datei angezeigt wird.
              Bei submit wird erstmal ein ganz normaler submit auf die selbe .php Datei gemacht.

              Die prüfung der Daten erfolgt in der php datei und nicht in javascript.

              Passt etwas nicht wird eine entsprechende Meldung auf der Seite auf der auch das Formular zu sehen ist ausgegeben.
              Wenn alles passt wird auf eine andere .php mit anderem Template weitergeleitet.

              Benutze ich die display='none' Variante dann erscheint wieder mein Formular mit den Ganzen Werten die ich eingegeben hatte und die entsprechende Fehlermeldung was fehlt. Meine .php hat also die Post Parameter erhalten.

              Benutze ich aber disabled=true dann sind alle meine Postparameter leer, die Seite erscheint folglich als hätte ich sie eben zum ersten mal aufgerufen.

              Mein Script prüft zwar auf !empty($submit) - unabhängig von dieser if Bedingung werden aber alle Post Parameter wieder an das Formular übergeben damit die ausgefüllten Felder erhalten bleiben.


              Um es korrekt zu formulieren: der submit läuft also wohl normal ab (neu laden der seite...) aber ohne dass irgendwelche Post Daten übergeben werden.

              Zitat von asp2php Beitrag anzeigen
              Probiere mal so:

              onclick="this.disabled=true; return true;"
              Muss ich mal noch testen aber das sollte doch eigentlich nicht nötig sein?
              Zuletzt geändert von phobia; 18.05.2009, 17:17.

              Kommentar


              • #8
                mach doch print_r($_POST) dann siehst du, ob was ankommt.

                Kommentar

                Lädt...
                X