Skip to content

Instantly share code, notes, and snippets.

@ang3lkar
Created August 23, 2016 10:01
Show Gist options
  • Save ang3lkar/ba29745e42fbbb0be1eaa261fca02bdd to your computer and use it in GitHub Desktop.
Save ang3lkar/ba29745e42fbbb0be1eaa261fca02bdd to your computer and use it in GitHub Desktop.
JQuery form plugin
$(function ($) {
$.extend({
form: function (url, data, method) {
if (method == null) method = 'POST';
if (data == null) data = {};
var form = $('<form>').attr({
method: method,
action: url,
}).css({
display: 'none'
});
var addData = function (name, data) {
if ($.isArray(data)) {
for (var i = 0; i < data.length; i++) {
var value = data[i];
addData(name + '[]', value);
}
} else if (typeof data === 'object') {
for (var key in data) {
if (data.hasOwnProperty(key)) {
addData(name + '[' + key + ']', data[key]);
}
}
} else if (data != null) {
form.append($('<input>').attr({
type: 'hidden',
name: String(name),
value: String(data)
}));
}
};
for (var key in data) {
if (data.hasOwnProperty(key)) {
addData(key, data[key]);
}
}
return form.appendTo('body');
}
});
});
// Usage example:
// $.form('/submit', { foo: 'bar' }).submit();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment