Ankündigung

Einklappen
Keine Ankündigung bisher.

JQ Formular ergänzen und absenden....

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

  • JQ Formular ergänzen und absenden....

    Hallo Forum,

    es geht eigentlich um ein kleines simples Skript das aber irgend wie nicht funktioniert

    Code:
    $("form").submit(function(e){
            console.log('submit a form', $(this));
            if( $(this).hasClass('wpoFP') ){
                console.log('submit');
            }else{
                e.preventDefault();
                // setFPtoForm( $(this) );
                $(this).addClass('wpoFP').submit();
            }
        });
    Ich habe schon etliche Variationen durchprobiert, das Problem ist das laut der Konsole alles so ausgeführt wird wie es das soll aber das Formular wird nicht abgesendet =(
    Code:
    submit a form init [form#wpoAuthModForm.cal, context: form#wpoAuthModForm.cal]
    submit a form init [form#wpoAuthModForm.cal.wpoFP, context: form#wpoAuthModForm.cal.wpoFP]
    submit
    Das heißt nach dem ich mein hidden-input zum Formular hinzugefügt habe wird es erneut abgesendet, das skript erkennt die neue Class und es es erscheint "submit" in der konsole weil das Formular nun abgesendet werden kann.
    Dies passiert aber leider nicht, erst wenn ich es manuell noch einmal anklicke.
    Verwundert mich gerade sehr, mit .submit(); soll man doch Formulare absenden, warum klappt es nicht? =(

    MfG: Paykoman


  • #2
    Warum so umständlich?

    Code:
    $("form").submit(function() {
        $(this).append($('<input type="hidden" name="foo" value="bar" />'));
    });

    Kommentar


    • #3
      Hallo,

      naja weil die value die gesetzt werden soll leider erst durch eine async Funktion geholt wird und dementsprechend wird das Formular dann bereits gesendet bevor die Daten hinzugefügt wurden.
      Deshalb hatte ich das absenden unterbrochen und die async Funktion hatte es dann erneut abgesendet nach dem sie fertig ist, der Aufruf wurde auch gemacht aber letztlich wurde das Forumlar eben nicht abgesendet

      Kommentar


      • #4
        Dann erstelle ein fiddle das dein Problem nachvollziehbar darstellt, ansonsten können wir nur raten.

        Kommentar


        • #5
          Code:
          $('form').submit(function (event) {
              var $form = $(this);
          
              if ($form.find('input[name="foo"]').length == 0) {
                  event.preventDefault();
          
                  setTimeout(function () {
                      $form.append($('<input type="hidden" name="foo" value="bar" />'));
                      $form.submit();
                  }, 1000); // simulate asynchronous function
              }
          });
          https://jsfiddle.net/p9kbkacd/

          Kommentar

          Lädt...
          X