Fixed some bugs in the serialization code, it seems to work now.

This commit is contained in:
John Resig 2006-05-17 18:04:46 +00:00
parent f1c8b3ffc0
commit 3386923dcc

View file

@ -145,28 +145,23 @@ $.fn.load = function(a,o,f) {
*/ */
$.fn.formValues = function() { $.fn.formValues = function() {
var a = []; var a = [];
this.find("input,textarea,option") $("input,textarea,option",this).filter(":enabled").each(function(){
.filter(":enabled") // Skip selects with options which are not selected
.each(function() { if ((this.parentNode.type == 'select-one' || this.parentNode.type == 'select-multiple') && !this.selected) {
// return null;
// Skip selects with options which aren't selected }
if (((this.parentNode.type == 'select-one') || (this.parentNode.type == 'select-multiple')) &&
(!this.selected))
return;
// // Skip radio and checkbox elements which are not checked
// Skip radio and checkbox elements which aren't checked if ((this.type == 'radio' || this.type == 'checkbox') && !this.checked) {
if (((this.type == 'radio') || (this.type == 'checkbox')) && return null;
(!this.checked)) }
return;
// // All other elements are valid
// All other elements are valid ;) a.push({
var o = {}; name: this.name || this.id || this.parentNode.name || this.parentNode.id,
o.name = this.name || this.id || this.parentNode.name || this.parentNode.id; value: this.value
o.value = this.value;
a.push(o);
}); });
});
return a; return a;
}; };
@ -179,11 +174,9 @@ $.fn.formValues = function() {
*/ */
$.update = function(objElement, strURL, arrValues, fncCallback) { $.update = function(objElement, strURL, arrValues, fncCallback) {
$.post(strURL, arrValues, function(strHTML) { $.post(strURL, arrValues, function(strHTML) {
//
// Update the element with the new HTML // Update the element with the new HTML
objElement.html(strHTML); objElement.html(strHTML);
//
// Evaluate the scripts // Evaluate the scripts
objElement.html(strHTML).find("script").each(function(){ objElement.html(strHTML).find("script").each(function(){
try { try {
@ -191,7 +184,6 @@ $.update = function(objElement, strURL, arrValues, fncCallback) {
} catch(e) { } } catch(e) { }
}); });
//
// Callback handler // Callback handler
if (fncCallback) { fncCallback(); } if (fncCallback) { fncCallback(); }
}); });