jQuery submit() enthalten nicht eingereicht-Taste
Ich habe ein Formular mit mehreren Elementen und zwei submit-buttons, ist man "Save", der andere "Löschen". Auf die Schaltfläche "Löschen" bin ich mit Hilfe von jQuery dialog zu bestätigen Benutzer löschen will. Und wenn Sie dann bestätigen, dass ich das Formular abschicken. Das problem ist jQuery.submit() nicht auch die Originale submit-button, wenn es gepostet ist, so dass ich nicht erkennen kann auf dem server ein Löschen von Speichern, da Sie beide mit der gleichen form. Wenn ich entfernen Sie die jQuery-dialog dann den submit button Wert ist gepostet, wie erwartet. Dies HAT sehr Häufig und ich bin der Hoffnung, jemand kann teilen eine Lösung. Ich habe gesucht herum und kann nichts finden, sinnvoll (ist es nur mir so oder ist google das saugen in letzter Zeit?)
Vielen Dank für jede Hilfe...
EDIT:
Die submit-buttons haben Namen und Werte festgelegt. Es funktioniert gut, wenn nicht jQuery verwenden.submit()
- Integrieren-ID auf deinem submit-buttons zu unterscheiden, zu Speichern oder zu Löschen, die in Ihr jQuery - /server-Seite überprüft
- Danke, aber das ist nicht das Problem. Ich habe Werte für den submit-buttons. Es funktioniert, wenn ich nicht verwenden jquery.submit().
- Dieses problem existiert mit den
serialize()
Methode, trotz des submit-buttons haben alle die in der Regel Attribute gesetzt, werden Sie nicht anerkannt. Ich musste manuell zu behandeln.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basierend auf karim79 Antwort:
UPDATE:
Merkte ich, der obige code ist wahrscheinlich nicht das was du suchst:
Wenn Sie anrufen, senden Sie auf das form-element selbst (
$("form").submit();
), müssen Sie etwas wie dieses:Die Beurteilung der ersten button-element den Namen und den Wert an den DOM rechts, bevor das Formular abgeschickt wird (ich bin mir nicht sicher, was die Standard-browser-Verhalten ist hier). Beachten Sie, dass dies nicht entfernen Sie die
tempElement
aus der DOM. Wenn ein Fehler vorliegt, und die form ist nicht eingereicht, wird das element bleiben, und Sie werden Probleme haben, wenn Sie nicht aufpassen.submit
nicht die Schaltfläche Werte.$(this).attr("type", "hidden");
die Arbeit machenDen submit-button die Daten nur übermittelt werden, wenn es angeklickt wird. So würden Sie auch Pech, wenn jemand enter gedrückt anstelle von einem Klick auf den submit-button.
Empfehle ich zu löschen, der löschen-button von der form, wie es wahrscheinlich nicht brauchen, die meisten von der form, die Informationen sowieso (nur die ID des Datensatzes, den Sie löschen möchten) ändern Sie eine Taste (mit
type="button"
) zum senden einer anderen form oder, wenn Sie können, setzen Sie einen link dorthin. (Die links zu einer Seite löschen - das ist besser für usability-Gründen sowieso, denn es entfernt den Fokus von der löschen-option und reduziert das Risiko der Benutzer versehentlich klicken Sie auf die Schaltfläche löschen.)Diese Art der Sache ist gelöst werden können, durch die Einbeziehung einer "action" - parameter irgendwie, die dem server mitteilt, was der Zweck der Vorlage ist. Zum Beispiel, wenn Ihr Formular eingereicht BEKOMMEN:
http://jsfiddle.net/karim79/JT3GV/5/
name
als "geklickt" Eingabe-Taste rechts vor dem Absenden des Formulars? Entfernen Sie dann die verdeckte Eingabe, nachdem Sie eingereicht wurde. So, die form wird die gleiche Arbeit für nicht-js und js Veröffentlichungen und arbeiten auch bei GET oder POST.