2017-11-07 3 views
0

Schätzen Sie alle Hinweise zu diesem, da ich nicht die richtige Dokumentation finden kann, um es zu beheben.Jquery Submit-Funktion sendet keine Post-Daten

Ich habe ein Grundformular, das einige Daten zur Verarbeitung an eine PHP-Seite sendet. Ich habe kürzlich ein Jquery-Skript installiert, um zu verhindern, dass die Übermittlungsschaltfläche mehr als einmal gedrückt wird. Von dem, was ich sagen kann, übergibt die Submit() - Funktion Post-Daten nicht an die nächste PHP-Seite zur Verarbeitung, und nicht sicher, was ich vermisse. Hier

ist die Form:

<form class="form-inline" style="display: inline-block;" action="XXX.php" method="post"> 
    <input name="Country" type="hidden" value="USA"/> 
    <input name="Subject" type="hidden" value="Item1"/> 
    <input name="Record_ID" type="hidden" value="1"/> 
    <button name="App" type="submit" value="New" class="btn btn-primary">Send Request</button> 
    </form> 

Hier ist das Skript:

<script> 
    $(document).ready(function() { 
     $('form').submit(function() { 
      //disable the submit button and update text 
      $(this).children('button').attr("disabled", true); 
      $(this).children('button').text('Please Wait...'); 
      return true; 
     }); 
    }); 
    </script> 

Wenn ich auf den "Senden" -Knopf, um die Textänderungen und das Formular abschickt, aber die Post Daten scheinen nicht für die Fahrt mitzukommen. Ich habe Verweise auf Dinge wie Serialisierung gesehen, kann aber nicht herausfinden, wie ich es umsetzen kann, da ich nicht Ajax verwende. Vielen Dank für Ihre Hilfe!

+0

Serialize ist nur für Ajax, die, wie Sie sagten, Sie nicht tun. Frage, wenn Sie auskommen, Sie sind komplette js Block und lassen Sie das Formular ohne es senden, sendet es die Daten? Auch Sie sagten, es scheint, als ob die Daten nicht gesendet werden. Wie verifizierst du das? – Taplar

+0

Danke. Ohne die JQuery, reicht die Form gut aus. Wirklich das Einzige, was ich zu tun versuchte, war, die Schaltfläche auf einen einzigen Klick zu beschränken, da der Prozess auf der nächsten Seite eine volle Sekunde dauern kann und ich die Benutzer mehrfach auf die Schaltfläche klickte. – Seth

+0

Es ist auch erwähnenswert, dass es auf dieser Seite mehrere Formulare mit der Einreichung gibt. Ich stehe auf eine Hypothese, dass mein Selektor falsch ist und das ist es, was es verursacht ... kann einfach nicht mein Gehirn darum gewickelt werden. – Seth

Antwort

0

**** Hier ist, was tatsächlich funktioniert, obwohl ich nicht in der Lage bin, die Schaltfläche zu deaktivieren, wie es das Formular bricht, wenn ich es versuche. Ich kann sagen, dass ich die jQuery-Selektoren nicht richtig verwendet habe, wie zuvor, als ich $ (this) .child ('button') versuchte, was die Schaltfläche nicht richtig auswählen würde. Die folgende Version funktioniert jedoch, wenn ich versuche, diese Zeile hinzuzufügen:

Dann wird das Formular nicht übergeben. Der unten stehende Code funktioniert also (Danke @Taplar), und ich habe bestätigt, dass das Formular nur einmal gesendet werden kann ... der Benutzer kann einfach nur dort sitzen und hundertmal klicken, wenn er will, aber nichts passiert nach dem erster Klick

$(document).ready(function() { 
     var formsEnabled = true; 

     $('form').submit(function(e) { 
     if (!formsEnabled) e.preventDefault(); 
     $("button", this).text('Please Wait...'); 

     formsEnabled = false; 
     }); 
    });