Reputation: 173
I' m trying to create a simple Button and when it's clicked I want to trigger a hidden FileUpload widget which is inside a FormPanel. What I have done until now is two things:
Can anyone help me please??? I have searched a lot but I find nothing working.
Upvotes: 4
Views: 3370
Reputation: 1836
I believe Thomas Broyer's answer is out of date now. I have just successfully used myFileUpload.click()
with no problems.
I also used setVisible(false)
on the the FileUpload
field and it works in Chrome. Haven't tested in Safari but it would seem those issues have been resolved now.
Upvotes: 2
Reputation: 33297
You can also use JSNI like this:
private native void triggerClick(Element e) /*-{
e.click();
}-*/;
Then call
triggerClick(fileInput.getElement());
Upvotes: 0
Reputation: 64541
myFileUpload.getElement().<InputElement>cast().click()
is what you're looking for.
For it to work in WebKit-based browsers (Chrome, Safari), the FileUpload has to be "moved out of view" but not hidden (as in setVisible(false)
, which sets the CSS display
property to none
), i.e. something like (in CSS): position:absolute; top: -1000px; left: -1000px;
Upvotes: 11