Subsequent xforms-select events not firing from xf:upload

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Subsequent xforms-select events not firing from xf:upload

Nathan Jones-2
On our form which has multiple upload controls the xforms-select event is not firing from the upload control after one upload has already been performed. The select event works fine however when making multiple uploads to the sample upload form (which has a single but repeating upload). This is affecting IE6 but not Firefox 2. I have attached the xform for which we are experiencing this behaviour.

- Nathan



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws

newDocument.xhtml (264K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Subsequent xforms-select events not firing from xf:upload

Adrian Baker
This is caused by the ORBEON.util.Dom.clearUploadControl function which deletes & re-adds the upload <input> element, in the process removing the focus, blue & change handlers on the element, which are required for IE.

Simple fix is to conditionally re-add the handlers to the new <input>:

(split out handle registration into separate method):
    _registerListerersOnFormElements: function() {
        for (var i = 0; i < document.forms.length; i++) {
            var form = document.forms[i];
            if (ORBEON.util.Dom.hasClass(form, "xforms-form")) {
                for (var j = 0; j < form.elements.length; j++) {
                    registerListenerOnElement(form.elements[j]);
                }
            }
        }
    },
   
    registerListenerOnElement: function(element) {
        YAHOO.util.Event.addListener(element, "focus", ORBEON.xforms.Events.focus);
        YAHOO.util.Event.addListener(element, "blur", ORBEON.xforms.Events.blur);
        YAHOO.util.Event.addListener(element, "change", ORBEON.xforms.Events.change);
    }

    ...

    clearUploadControl: function(uploadElement) {

        ...

        // For non w3c compliant browsers we must re-register listeners on the element
        if (window.addEventListener && !ORBEON.xforms.Globals.isRenderingEngineWebCore13) {
            registerListenerOnElement(newInputElement);
        }
        return null;
    }

Adrian

Nathan Jones wrote:
On our form which has multiple upload controls the xforms-select event is not firing from the upload control after one upload has already been performed. The select event works fine however when making multiple uploads to the sample upload form (which has a single but repeating upload). This is affecting IE6 but not Firefox 2. I have attached the xform for which we are experiencing this behaviour.

- Nathan


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws