w jaki sposób mogę zastąpić .serialize jquery w celu włączenia niezaznaczonych pól wyboru

Przeczytałem kilka różnych metod zaznaczania pól html na serwerze, ale naprawdę chcę to zrobić bez modyfikowania niczego poza $ .serialize. W idealnej sytuacji chciałbym, aby zaznaczone pola były publikowane jako włączone i odznaczone, aby były wysyłane jako 0, puste lub puste.

Jestem trochę zdezorientowany wewnętrznymi działaniami jquery, ale mam to do tej pory, ale ustawia niezaznaczone pola wyboru na 'on' ... Czy ktoś może mi powiedzieć, jak kontynuować tę modyfikację poniżej?

<code>$.fn.extend({
    serializeArray: function() {
        return this.map(function(){
            return this.elements ? jQuery.makeArray( this.elements ) : this;
        })
        .filter(function(){
            return this.name && !this.disabled &&
                ( this.checked || !this.checked || rselectTextarea.test( this.nodeName ) || rinput.test( this.type ) );
        })
        .map(function( i, elem ){
            var val = jQuery( this ).val();

            return val == null ?
                null :
                jQuery.isArray( val ) ?
                    jQuery.map( val, function( val, i ){
                        return { name: elem.name, value: val.replace( /\r?\n/g, "\r\n" ) };
                    }) :
                    { name: elem.name, value: val.replace( /\r?\n/g, "\r\n" ) };
        }).get();
    }
});
</code>

questionAnswers(9)

yourAnswerToTheQuestion