我已经阅读了很多将 html 复选框发布到服务器的不同方法,但我真的希望在不修改任何东西(除了 $.serialize 之外)的情况下做到这一点。理想情况下,我希望将选中的框张贴为打开,将未选中的框张贴为 0、空或空。
我对 jquery 的内部工作有点困惑,但到目前为止我已经有了这个,但是它将未选中的复选框设置为“on”......谁能告诉我如何在下面继续这个修改?
$.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();
}
});