This is Seam 1.2.1 / JBoss 4.2.1.
Any tips would be appreciated.
Looking some more at the source code, I wonder if perhaps I should have my JS code call A4J.AJAX.Submit() directly. I need to figure out what the params of that are and how to use it but it might be an option.
I set up a test page with a <h:inputText> with a nested <a:support>, and that worked. It had a form with the right enctype. I changed <h:inputText> to <s:fileUpload>, and changed nothing else on the page, and it didn't work. Obviously the <a:support> tag isn't putting any kind of onchange attribute on the enclosing <s:fileUpload> tag. I assume this is a bug? There aren't any other Seam UI controls that are inputs, so maybe this hasn't been tested in Seam. But I think it's a bug.
Looks like I might be able to achieve this with the a:jsFunction component. That lets me call into the whole JSF framework from a plain JS function. I can get a JS function to trigger when the file upload field is changed. And that could then trigger something with a:jsFunction.
I did try to use a <a:commandButton> to do a partial-rerender when submitting a file upload, and that did not work. Somehow the backing bean method was getting called without any form data being submitted. I don't get it.