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;
            }


Reply via email to