]> dev.renevier.net Git - syj.git/commitdiff
disable form during request in Ajaxize
authorarno <arno@renevier.net>
Fri, 20 Aug 2010 09:30:25 +0000 (11:30 +0200)
committerarno <arno@renevier.net>
Fri, 20 Aug 2010 12:17:50 +0000 (14:17 +0200)
public/js/utils.js

index f437d150d8f821000afa9adda7253547deb0c0eb..85fe57a6acac89af4619ecaef3d3912d95ebc18e 100644 (file)
@@ -212,11 +212,37 @@ Element.addMethods('form', {
                 reqoptions.method = this.method;
             }
 
+            if (reqoptions.onFailure) {
+                reqoptions.onFailure = reqoptions.onFailure.wrap(function(proceed, transport, json) {
+                    form.enable();
+                    proceed(transport, json);
+                });
+            } else {
+                reqoptions.onFailure = function() {
+                    form.enable();
+                };
+            }
+
+            if (reqoptions.onSuccess) {
+                reqoptions.onSuccess = reqoptions.onSuccess.wrap(function(proceed, transport, json) {
+                    form.enable();
+                    proceed(transport, json);
+                });
+            } else {
+                reqoptions.onSuccess = function() {
+                    form.enable();
+                };
+            }
+
             new Ajax.TimedRequest(action, options.delay || 20, reqoptions);
 
             if (Object.isFunction(options.postsubmit)) {
                 options.postsubmit(this);
             }
+            Form.getElements(form).each(function(elt) {
+                elt.blur();
+                elt.disable();
+            });
         });
     },