Derzeit habe ich Folgendes:
$.ajax({
type: 'POST',
url: this.action,
data: $(this).serialize(),
});
Dies funktioniert gut, ich möchte jedoch einen Wert zu Daten hinzufügen, also habe ich es versucht
$.ajax({
type: 'POST',
url: this.action,
data: $(this).serialize() + '&=NonFormValue' + NonFormValue,
});
Aber das hat nicht richtig gepostet. Irgendwelche Ideen, wie Sie der Serialisierungszeichenfolge ein Element hinzufügen können? Dies ist eine globale Seitenvariable, die nicht formularspezifisch ist.
serialization
jquery
Der Ausgang
quelle
quelle
'&NonFormValue=' + NonFormValue
?Antworten:
Anstatt
du willst wahrscheinlich
Sie sollten darauf achten, den Wert von URL-zu codieren,
NonFormValue
wenn er Sonderzeichen enthält.quelle
encodeURIComponent
um sicherzustellen, dass dieNonFormValue
keine Sonderzeichen hatWährend die Antwort von matt b funktioniert, können Sie auch
.serializeArray()
ein Array aus den Formulardaten abrufen, es ändern undjQuery.param()
es in ein URL-codiertes Formular konvertieren. Auf diese Weise übernimmt jQuery die Serialisierung Ihrer zusätzlichen Daten für Sie.quelle
Erstens sollte nicht
Sein
und zweitens können Sie verwenden
oder wenn die Aktion bereits Parameter enthält
quelle
NonFormValue
würde als URL-Parameter gesendet, nicht in den POST-Daten. Dies ist möglicherweise nicht ideal, wenn a) was auch immer auf der Serverseite ausgeführt wird, erwartet, dass es veröffentlicht wird (z. B.request.POST
anstelle vonrequest.REQUEST
Django) oder b)NonFormValue
aus Sicherheitsgründen oder aus Gründen nicht in der URL-Leiste oder im Verlauf angezeigt wird Es ist ein vorübergehender Wert.Fügen Sie den Artikel zuerst hinzu und serialisieren Sie dann:
quelle
Vergessen Sie nicht, dass Sie immer Folgendes tun können:
in Ihrer tatsächlichen Form, die je nach Fall für Ihren Code besser sein kann.
quelle
Wir können mögen:
Beispielsweise:
quelle
Sie können eine zusätzliche Funktion schreiben, um Formulardaten zu verarbeiten, und Sie sollten Ihre Nichtformulardaten als Datenwert in das Formular einfügen. Siehe Beispiel:
Fügen Sie dann diese Abfrage für die Formularverarbeitung hinzu
quelle
das ist besser:
quelle