You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/10/15 07:17:47 UTC

svn commit: r464123 - in /tapestry/tapestry4/trunk: tapestry-examples/Workbench/src/context/Dates.html tapestry-framework/src/js/tapestry/form.js

Author: jkuhnert
Date: Sat Oct 14 22:17:46 2006
New Revision: 464123

URL: http://svn.apache.org/viewvc?view=rev&rev=464123
Log:
Ok fine. So maybe josh had a point.

Modified:
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html
    tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html?view=diff&rev=464123&r1=464122&r2=464123
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html Sat Oct 14 22:17:46 2006
@@ -10,7 +10,7 @@
 
 <form jwcid="@Form" delegate="bean:delegate" 
 		clientValidationEnabled="ognl:clientValidationEnabled" 
-		async="ognl:true" updateComponents="ognl:{'dateDisplay'}" >
+		async="true" updateComponents="dateDisplay" >
 
 <table valign="middle">
  <tr>

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js?view=diff&rev=464123&r1=464122&r2=464123
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js Sat Oct 14 22:17:46 2006
@@ -61,41 +61,59 @@
 		// make sure id is correct just in case node passed in has only name
 		id=form.getAttribute("id");
 		
-		// previously connected, cleanup and connect aga
-		if (!this.forms[id] || (this.forms[id] && dojo.render.html.ie)) {
+		// if previously connected, cleanup and reconnect
+		if (this.forms[id]) {
+			dojo.event.disconnect(form, "onsubmit", this, "onFormSubmit");
+			for(var i = 0; i < form.elements.length; i++) {
+				var node = form.elements[i];
+				if(node && node.type && dojo.lang.inArray(["submit", "button"],node.type.toLowerCase())) {
+					dojo.event.disconnect(node, "onclick", tapestry.form, "inputClicked");
+				}
+			}
 			
-			this.forms[id]={};
-			this.forms[id].validateForm=true;
-			this.forms[id].profiles=[];
-			this.forms[id].async=(typeof async != "undefined") ? async : false;
-			this.forms[id].json=(typeof json != "undefined") ? json : false;
+			var inputs = form.getElementsByTagName("input");
+			for(var i = 0; i < inputs.length; i++) {
+				var input = inputs[i];
+				if(input.type.toLowerCase() == "image" && input.form == form) {
+					dojo.event.disconnect(input, "onclick", tapestry.form, "inputClicked");
+				}
+			}
 			
-			if (!this.forms[id].async) {
-				dojo.event.connect(form, "onsubmit", this, "onFormSubmit");
-			} else {
-				for(var i = 0; i < form.elements.length; i++) {
-					var node = form.elements[i];
-					if(node && node.type && dojo.lang.inArray(node.type.toLowerCase(), ["submit", "button"])) {
-						dojo.event.connect(node, "onclick", tapestry.form, "inputClicked");
-					}
+			dojo.event.disconnect(form, "onsubmit", this, "overrideSubmit");
+			delete this.forms[id];
+		}
+		
+		this.forms[id]={};
+		this.forms[id].validateForm=true;
+		this.forms[id].profiles=[];
+		this.forms[id].async=(typeof async != "undefined") ? async : false;
+		this.forms[id].json=(typeof json != "undefined") ? json : false;
+		
+		if (!this.forms[id].async) {
+			dojo.event.connect(form, "onsubmit", this, "onFormSubmit");
+		} else {
+			for(var i = 0; i < form.elements.length; i++) {
+				var node = form.elements[i];
+				if(node && node.type && dojo.lang.inArray(["submit", "button"],node.type.toLowerCase())) {
+					dojo.event.connect(node, "onclick", tapestry.form, "inputClicked");
 				}
-				
-				var inputs = form.getElementsByTagName("input");
-				for(var i = 0; i < inputs.length; i++) {
-					var input = inputs[i];
-					if(input.type.toLowerCase() == "image" && input.form == form) {
-						dojo.event.connect(input, "onclick", tapestry.form, "inputClicked");
-					}
+			}
+			
+			var inputs = form.getElementsByTagName("input");
+			for(var i = 0; i < inputs.length; i++) {
+				var input = inputs[i];
+				if(input.type.toLowerCase() == "image" && input.form == form) {
+					dojo.event.connect(input, "onclick", tapestry.form, "inputClicked");
 				}
-				
-				dojo.event.connect(form, "onsubmit", function(e) {
-					dojo.event.browser.stopEvent(e);
-					tapestry.form.submitAsync(form);
-				});
 			}
-		} else {
-			dojo.log.debug("registerForm(" + id + ") Form already registered, ignoring.");
+			
+			dojo.event.connect(form, "onsubmit", this, "overrideSubmit");
 		}
+	},
+	
+	overrideSubmit:function(e){
+		dojo.event.browser.stopEvent(e);
+		tapestry.form.submitAsync(e.target);
 	},
 	
 	/**