user1002039 user1002039 - 6 months ago 11
jQuery Question

JQuery - Appending to Serialize

I am trying to figure out how to append two more values to the serialize method in JQuery. I have the following code to submit a form with ajax and have two more variables that I would like to append:

Thank you!

...
var formData = $('#contact_form').serialize();
submitForm(formData);

// -----------------------------------------------
// AJAX FORM SUBMIT
// -----------------------------------------------
function submitForm(formData){
$.ajax({
type: 'POST',
url: 'contact.php',
data: formData,
dataType: 'json',
cache: false,
timeout: 7000,
success: function(data) {
// display success message
response(data.msg,'show');
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
...
},
complete: function(XMLHttpRequest, status) {
...
}
});
}

Answer

If you change serialize() to serializeArray() you can push values into the array :

var formData = $('#contact_form').serializeArray();
formData.push({ name: "<something>", value: "<somevalue>" });
submitForm(formData);

The data can still be sent in the same way as you would with the serialize() method, using the $.ajax() method

Comments