Aber das wurde nicht richtig gepostet. Irgendwelche Ideen, wie Sie der Serialisierungszeichenfolge ein Element hinzufügen können? Dies ist eine globale Seitenvariable, die nicht formularspezifisch ist.
Können Sie erklären, was “das wurde nicht richtig gepostet” bedeutet? Was ist passiert? Was wurde vom Server empfangen?
– matt b
30. Juni 11 um 18:40 Uhr
Sollte das nicht sein '&NonFormValue=' + NonFormValue?
– Wesley Murch
30. Juni 11 um 18:40 Uhr
Leigh Brenecki
Während die Antwort von matt b funktioniert, können Sie auch verwenden .serializeArray() um ein Array aus den Formulardaten zu erhalten, es zu ändern und zu verwenden jQuery.param() um es in eine URL-codierte Form umzuwandeln. Auf diese Weise übernimmt jQuery die Serialisierung Ihrer zusätzlichen Daten für Sie.
var data = $(this).serializeArray(); // convert form to array
data.push({name: "NonFormValue", value: NonFormValue});
$.ajax({
type: 'POST',
url: this.action,
data: $.param(data),
});
Dies ist definitiv die beste Option – die Serialisierung wird vollständig jQuery überlassen, während die Möglichkeit besteht, den aus dem Formular abgerufenen Werten neue Werte hinzuzufügen.
– jcsanyi
15. November 13 um 2:29 Uhr
Dies ist der beste Weg, es zu tun, ohne mit Saiten zu spielen
– Brett Gregson
25. November 15 um 10:45 Uhr
Dies sollte die akzeptierte Antwort sein. Sauber und richtig
Ihre zweite Antwort hätte nicht die gleiche Wirkung wie die Frage; NonFormValue als URL-Parameter gesendet werden, nicht in den POST-Daten. Dies ist möglicherweise nicht ideal, wenn a) was auch immer auf der Serverseite läuft, erwartet, dass es gepostet wird (zB using request.POST anstatt request.REQUEST in Django) oder b) NonFormValue ist etwas, das aus Sicherheitsgründen oder weil es sich um einen vorübergehenden Wert handelt, nicht in der URL-Leiste oder im Verlauf erscheinen sollte.
– Leigh Brenecki
23. Juli 13 um 4:56 Uhr
Vergessen Sie nicht, dass Sie immer Folgendes tun können:
Können Sie erklären, was “das wurde nicht richtig gepostet” bedeutet? Was ist passiert? Was wurde vom Server empfangen?
– matt b
30. Juni 11 um 18:40 Uhr
Sollte das nicht sein
'&NonFormValue=' + NonFormValue
?– Wesley Murch
30. Juni 11 um 18:40 Uhr