शामिल करने के लिए jquery के .serialize को ओवरराइड कैसे कर सकता हूं मैंने सर्वर पर एचटीएमएल चेकबॉक्स पोस्ट करने के कुछ अलग-अलग तरीकों को पढ़ा है, लेकिन मैं वास्तव में $ .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();
}
});
यह लगभग पूरी तरह से काम किया। मैंने बस jQuery (यह) बदल दिया। JQuery (यह) .prop ('चेक') पर चेक किया गया और यह बहुत अच्छा काम करता है। धन्यवाद! – Jonathon
@ user975571 या कुछ कारणों से 'jQuery (यह) .prop ('चेक')' –
के बजाय 'this.checked'' का सरल उपयोग करें, लेकिन अंत में यह किया गया: jQuery (यह) .prop ('टाइप') == 'चेकबॉक्स' – Jonathon