htmlチェックボックスをサーバーに投稿させる方法はかなり異なりますが、$ .serializeを除いては何も変更せずに行います。私は理想的には、チェックボックスをオンとして投稿し、チェックを外して0、空、またはヌルとして投稿することをお勧めします。jqueryの.serializeをオーバーライドしてチェックされていないチェックボックスを含めるにはどうすればいいですか
私は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();
}
});
これはほぼ完全に機能しました。私はjQuery(this)をjQuery(this).prop( 'checked')に変更しました。ありがとう! – Jonathon
@ user975571または単純に 'jQuery(this).prop( 'checked')' –
の代わりに 'this.checked'を使用していました。 'type')== 'checkbox' – Jonathon