Seems to be faster rewriting it with a for loop instead of using each.
Matt, can you confirm?
Mike
$.fn.serialize = function() {
var a = [];
var ok = {INPUT:true, TEXTAREA:true, OPTION:true};
var els = this[0].getElementsByTagName("*");
var l = els.length;
for (var i=0; i < l; i++) {
var el = els[i];
var par = el.parentNode;
var p = par.nodeName.toUpperCase();
var n = el.name || p == 'OPTGROUP' && par.parentNode.name || p
==
'SELECT' && par.name || el.id;
if ( !n || el.disabled || el.type == 'reset' ||
(el.type == 'checkbox' || el.type == 'radio') &&
!el.checked ||
!ok[el.nodeName.toUpperCase()] ||
(el.type == 'submit' || el.type == 'image') &&
el.form.clicked != el ||
(p == 'SELECT' || p == 'OPTGROUP') && !el.selected )
continue;
if (el.type == 'image' && el.form.clicked_x)
return a.push(
{name: el.name+'_x', value: el.form.clicked_x},
{name: el.name+'_y', value: el.form.clicked_y}
);
a.push({name: n, value: el.value});
};
return a;
};
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/