actuellement j'ai ce qui suit:
$.ajax({
type: 'POST',
url: this.action,
data: $(this).serialize(),
});
Cela fonctionne bien, mais j'aimerais ajouter une valeur aux données, j'ai donc essayé
$.ajax({
type: 'POST',
url: this.action,
data: $(this).serialize() + '&=NonFormValue' + NonFormValue,
});
Mais cela n'a pas été publié correctement. Des idées sur la façon dont vous pouvez ajouter un élément à la chaîne de sérialisation? Il s'agit d'une variable de page globale qui n'est pas spécifique au formulaire.
serialization
jquery
La sortie
la source
la source
'&NonFormValue=' + NonFormValue
?Réponses:
Au lieu de
tu veux probablement
Vous devez faire attention à encoder en URL la valeur de
NonFormValue
si elle peut contenir des caractères spéciaux.la source
encodeURIComponent
pour s'assurer que leNonFormValue
n'a pas de caractères spéciauxBien que la réponse de matt b fonctionne, vous pouvez également utiliser
.serializeArray()
pour obtenir un tableau à partir des données du formulaire, le modifier et l'utiliserjQuery.param()
pour le convertir en un formulaire encodé en URL. De cette façon, jQuery gère la sérialisation de vos données supplémentaires pour vous.la source
d'abord ne devrait pas
être
et deuxièmement, vous pouvez utiliser
ou si l'action contient déjà des paramètres
la source
NonFormValue
serait envoyé en tant que paramètre URL, pas dans les données POSTées. Cela pourrait ne pas être idéal si a) quel que soit il fonctionne sur le côté serveur peut être affiché (par exemple , en utilisant aurequest.POST
lieu derequest.REQUEST
Django), ou b)NonFormValue
est quelque chose qui ne devrait pas apparaître dans la barre d'URL ou l' histoire soit pour des raisons de sécurité ou parce que c'est une valeur transitoire.Ajoutez d'abord l'élément, puis sérialisez:
la source
N'oubliez pas que vous pouvez toujours faire:
dans votre forme actuelle, ce qui peut être meilleur pour votre code selon le cas.
la source
On peut faire comme:
Par exemple:
la source
Vous pouvez écrire une fonction supplémentaire pour traiter les données du formulaire et vous devez ajouter vos données non formelles en tant que valeur de données dans le formulaire.Voir l'exemple:
Ajoutez ensuite cette jquery pour le traitement du formulaire
la source
c'est mieux:
la source