ddd-jquery
Version:
de-bowerified, de-amdified, de-gruntified... jQuery.
65 lines • 2.75 kB
JavaScript
var jQuery = require('./core'), rcheckableType = require('./manipulation/var/rcheckableType'), __unnameddep__ = require('./core/init'), __unnameddep__ = require('./traversing'), __unnameddep__ = require('./attributes/prop');
var r20 = /%20/g, rbracket = /\[\]$/, rCRLF = /\r?\n/g, rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, rsubmittable = /^(?:input|select|textarea|keygen)/i;
function buildParams(prefix, obj, traditional, add) {
var name;
if (jQuery.isArray(obj)) {
jQuery.each(obj, function (i, v) {
if (traditional || rbracket.test(prefix)) {
add(prefix, v);
} else {
buildParams(prefix + '[' + (typeof v === 'object' ? i : '') + ']', v, traditional, add);
}
});
} else if (!traditional && jQuery.type(obj) === 'object') {
for (name in obj) {
buildParams(prefix + '[' + name + ']', obj[name], traditional, add);
}
} else {
add(prefix, obj);
}
}
jQuery.param = function (a, traditional) {
var prefix, s = [], add = function (key, value) {
value = jQuery.isFunction(value) ? value() : value == null ? '' : value;
s[s.length] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
};
if (traditional === undefined) {
traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
}
if (jQuery.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {
jQuery.each(a, function () {
add(this.name, this.value);
});
} else {
for (prefix in a) {
buildParams(prefix, a[prefix], traditional, add);
}
}
return s.join('&').replace(r20, '+');
};
jQuery.fn.extend({
serialize: function () {
return jQuery.param(this.serializeArray());
},
serializeArray: function () {
return this.map(function () {
var elements = jQuery.prop(this, 'elements');
return elements ? jQuery.makeArray(elements) : this;
}).filter(function () {
var type = this.type;
return this.name && !jQuery(this).is(':disabled') && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));
}).map(function (i, elem) {
var val = jQuery(this).val();
return val == null ? null : jQuery.isArray(val) ? jQuery.map(val, function (val) {
return {
name: elem.name,
value: val.replace(rCRLF, '\r\n')
};
}) : {
name: elem.name,
value: val.replace(rCRLF, '\r\n')
};
}).get();
}
});
module.exports = jQuery;