Ich habe gelesen, ziemlich viele verschiedene Methoden der HTML-Checkboxen auf dem Server veröffentlicht werden, aber ich bin wirklich auf der Suche nach tun, ohne etwas außer $ .serialize zu ändern. Ich möchte im Idealfall, dass die aktivierten Kästchen als aktiviert und nicht markiert als 0, leer oder null markiert werden.Wie kann ich jquery's serialize überschreiben, um nicht markierte Kontrollkästchen einzuschließen
Ich bin ein wenig verwirrt von jquery's inner-workings, aber ich habe das bis jetzt, aber es setzt unchecked checkboxes auf 'on' ... Kann mir jemand sagen, wie man diese Modifikation unten weiterführt?
$.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();
}
});
Das hat fast perfekt funktioniert. Ich habe gerade jQuery (this) .checked zu jQuery (this) .prop ('checked') geändert und es hat super funktioniert. Vielen Dank! – Jonathon
@ user97551 oder simpley 'this.checked' anstelle von' jQuery (this) .prop ('checked') ' –
aus irgendeinem Grund, die nicht funktionierte, aber dies schließlich tat: jQuery (this) .prop ('type') == 'checkbox' – Jonathon