как я могу переопределить jquery's.serialize, чтобы включить неотмеченные флажки

Я читал довольно много различных методов отправки html-флажков на сервер, но я действительно хочу сделать это, не изменяя ничего, кроме $.serialize. В идеале я хотел бы, чтобы отмеченные флажки были опубликованы как включенные, а неотмеченные - как 0, пустые или нулевые.

Меня немного смущает внутренняя-работа jquery, но у меня есть это до сих пор, но оно устанавливает неотмеченные флажки в положение «включено»… Кто-нибудь может сказать мне, как продолжить эту модификацию ниже?

$.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();
    }
});
13
задан Jonathon 13 April 2012 в 19:30
поделиться