This commit is contained in:
87
wwwroot/js/lib/jquery.gzserialize.js
Normal file
87
wwwroot/js/lib/jquery.gzserialize.js
Normal file
@@ -0,0 +1,87 @@
|
||||
(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|date|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();
|
||||
|
||||
//this block changed here by me to break out the overly tight but obscure code
|
||||
|
||||
if (val == null) return null;
|
||||
|
||||
if ($.isArray(val)) {
|
||||
//Array return
|
||||
return $.map(val, function(val, i) {
|
||||
return {
|
||||
name: elem.name,
|
||||
value: val
|
||||
};
|
||||
})
|
||||
} else {
|
||||
|
||||
if (o.checkboxesAsBools && this.type === 'checkbox') {
|
||||
return {
|
||||
name: elem.name,
|
||||
value: (this.checked ? 'true' : 'false')
|
||||
}
|
||||
}
|
||||
|
||||
//for now dates are handled at the backend
|
||||
//by convention of field name ending in "Date" (sentDate, readDate etc)
|
||||
// if (this.type === 'date') {
|
||||
// return {
|
||||
// name: elem.name,
|
||||
// value: (val === '' ? '' : val) //empty dates sb null for mongo db backend
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
//default all other types
|
||||
return {
|
||||
name: elem.name,
|
||||
value: val
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// /changed by me
|
||||
|
||||
|
||||
//ORIGINAL BLOCK:
|
||||
// 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);
|
||||
Reference in New Issue
Block a user