Skip to content

@TaoK /JQuerySerializeCheckbox.js
Created

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
JQuery Serialize Method with Checkbox False Output
(function ($) {
$.fn.serialize = function (options) {
return $.param(this.serializeArray(options));
};
$.fn.serializeArray = function (options) {
var o = $.extend({
checkboxesAsBools: false
}, options || {});
var rselectTextarea = /select|textarea/i;
var rinput = /text|hidden|password|search/i;
return this.map(function () {
return this.elements ? $.makeArray(this.elements) : this;
})
.filter(function () {
return this.name && !this.disabled &&
(this.checked
|| (o.checkboxesAsBools && this.type === 'checkbox')
|| rselectTextarea.test(this.nodeName)
|| rinput.test(this.type));
})
.map(function (i, elem) {
var val = $(this).val();
return val == null ?
null :
$.isArray(val) ?
$.map(val, function (val, i) {
return { name: elem.name, value: val };
}) :
{
name: elem.name,
value: (o.checkboxesAsBools && this.type === 'checkbox') ? //moar ternaries!
(this.checked ? 'true' : 'false') :
val
};
}).get();
};
})(jQuery);
@TaoK
Owner

Modification to jquery serialize() method, to optionally support boolean serialization instead of standard http-form-submission-compliant checkbox serialization (name=value on true only).

Written by Thomas Danemar at http://tdanemar.wordpress.com/2010/08/24/jquery-serialize-method-and-checkboxes/, copied here for tracking/version control.

@TaoK
Owner

To easily consume serialization data generated with this "checkboxesAsBools" option, you can use the "jquery.deserialize" plugin: https://github.com/itsadok/jquery.deserialize

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.