You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2010/10/06 20:36:05 UTC

svn commit: r1005197 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js

Author: mgrigorov
Date: Wed Oct  6 18:36:05 2010
New Revision: 1005197

URL: http://svn.apache.org/viewvc?rev=1005197&view=rev
Log:
WICKET-3095 Adding AjaxFormSubmitBehavior to Form leads to "Error: too much recursion" JS Error

merge r1005194, 1005195 and 1005196 from 1.4.x

Set a temporary attribute to the form before calling its onsubmit handler to prevent endless loop.


Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js?rev=1005197&r1=1005196&r2=1005197&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js Wed Oct  6 18:36:05 2010
@@ -1069,10 +1069,14 @@ Wicket.Ajax.Call.prototype = {
 	// Submits a form using ajax.
 	// This method serializes a form and sends it as POST body.
 	submitForm: function(form, submitButton) {
-		if (form.onsubmit) {	
-			if (!form.onsubmit()) return;
+		var submittingAttribute = 'data-wicket-submitting';
+		if (form.onsubmit && !form.getAttribute(submittingAttribute)) {
+			form.setAttribute(submittingAttribute, submittingAttribute);
+			var retValue = form.onsubmit();
+			form.removeAttribute(submittingAttribute);
+			if (!retValue) return;
 		}
-	    
+		
 	    if (this.handleMultipart(form, submitButton)) {
 	    	return true;
 	    }