I added AjaxFallbackButton("Cancel").setDefaultFormProcessing(false) to the
multipart form and when it is pressed the form is handled as well as the
button would have defaultFormProcessing=true.

It happens because request parameters does not contain the name of the
submitting button.

The magic is in the new code in wicket-ajax.js

    // Submits a form using ajax.
    // This method serializes a form and sends it as POST body.
    submitForm: function(form, submitButton) {
        if (this.handleMultipart(form)) {
            return true;
        }
        var body = function() {
            var s = Wicket.Form.serialize(form);
            if (submitButton != null) {
                s += Wicket.Form.encode(submitButton) + "=1";
            }
            return s;
        }
        return this.request.post(body);
    },

I believe the problem is caused by handleMultipart(form) invocation.
submitForm function accepts submitButton parameter but does not passes it to
handleMultipart function.

Igor could you clarify that?

Reply via email to