You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2007/03/15 17:57:45 UTC

svn commit: r518689 - /incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/ajax/wicket-ajax.js

Author: knopp
Date: Thu Mar 15 09:57:44 2007
New Revision: 518689

URL: http://svn.apache.org/viewvc?view=rev&rev=518689
Log:
Form serialization improvements

Modified:
    incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/ajax/wicket-ajax.js

Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/ajax/wicket-ajax.js
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/ajax/wicket-ajax.js?view=diff&rev=518689&r1=518688&r2=518689
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/ajax/wicket-ajax.js (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/ajax/wicket-ajax.js Thu Mar 15 09:57:44 2007
@@ -283,22 +283,46 @@
     	return "";
     }
 }
-
-Wicket.Form.serialize = function(element) {
+   
+   
+Wicket.Form.doSerialize = function(form) {
     var result = "";
-    var tag = element.tagName.toLowerCase();
-
-	if (tag !="form" && element.name && element.name != "" && !element.disabled)  {
-	    result += Wicket.Form.serializeElement(element);
-	}
-
-    for (var i = 0; i < element.childNodes.length; ++i) {
-        var e = element.childNodes[i];
-       	if (e.tagName != null) {
-			result += Wicket.Form.serialize(e);
-		}
+    for (var i = 0; i < form.elements.length; ++i) {
+        var e = form.elements[i];
+        if (e.name && e.name != "" && !e.disabled) {
+            result += Wicket.Form.serializeElement(e);
+        }
     }
     return result;
+}
+
+Wicket.Form.serialize = function(element) {
+	if (element.tagName.toLowerCase() == "form") {		
+		return Wicket.Form.doSerialize(element);
+	} else {
+		// try to find a form in DOM parents
+		var elementBck = element;
+		do {
+			element = element.parentNode;
+		} while(element.tagName.toLowerCase() != "form" && element.tagName.toLowerCase() != "body")
+		
+		if (element.tagName.toLowerCase() == "form"){
+			// We found a form : serialize it
+			return Wicket.Form.doSerialize(element);
+		} else {
+			// there is not form in dom hierarchy
+			// simulate it  
+			var form = document.createElement("form");
+			parent = elementBck.parentNode;
+			
+			parent.replaceChild(form, elementBck);
+			form.appendChild(elementBck);
+			var result = Wicket.Form.doSerialize(form);
+			parent.replaceChild(elementBck, form);
+			
+			return result
+		}
+	}
 }
 
 /**