HTMLチェックボックスをサーバーに投稿するためのさまざまな方法をかなり読んだことがありますが、$.serialize以外は何も変更せずにそれを実行したいと考えています。理想的には、チェックされたボックスはオンとして投稿され、チェックされていないものは 0、空、または null として投稿されます。
私は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();
}
});