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/

Reply via email to