From 4a36d0046628ddc2a252b2896e0a32860f04896a Mon Sep 17 00:00:00 2001 From: Gilles van den Hoven Date: Thu, 1 Jun 2006 16:40:37 +0000 Subject: [PATCH] --- ajax/ajax.js | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/ajax/ajax.js b/ajax/ajax.js index caa23e7..f7c858a 100644 --- a/ajax/ajax.js +++ b/ajax/ajax.js @@ -145,27 +145,36 @@ $.fn.formValues = function(sButton) { // Loop the shite $('*', this).each(function() { + // Skip disabled elements + if (this.disabled) + return; + // Skip elements not of the types in elp if (!elp[this.tagName.toUpperCase()]) return; - // Skip disabled elements, submit buttons and image buttons - if ((this.disabled) || (this.type == 'submit') || (this.type == 'image')) + // Skip submit buttons and image elements + if ((this.type == 'submit') || (this.type == 'image')) return; - // Skip non-selected nodes - if ((this.parentNode.nodeName == 'SELECT') && (!this.selected)) + + // Skip non-selected options + var sP = this.parentNode.nodeName.toUpperCase(); + if (((sP == 'SELECT') || (sP == 'OPTGROUP')) && (!this.selected)) return; // Skip non-checked nodes if (((this.type == 'radio') || (this.type == 'checkbox')) && (!this.checked)) return; - // If we come here, everything is fine, so add the data - a.push({ - name: this.name || this.id || this.parentNode.name || this.parentNode.id, - value: this.value - }); + // If we come here, everything is fine + var sN = this.name || this.id || this.parentNode.name || this.parentNode.id; + var sV = this.value; + if ((!sN) && (sP == 'OPTGROUP')) + sN = this.parentNode.parentNode.name || this.parentNode.parentNode.id; + + // Add the data + a.push({ name: sN, value: sV }); }); // Add submit button if needed -- 1.7.10.4