3

Good day,

I'm trying to simulate a click on a browse file element but I couldn't make it work.

I found this: http://www.randomsnippets.com/2008/03/05/simulate-a-button-click-via-javascript/

and tried and it works in 'button' and 'submit' types:

<input type="checkbox" onClick="document.getElementById('theSubmitButton').click();">Check the box to simulate a button click
<input type="submit" name="theSubmitButton" id="theSubmitButton" value="Button" onClick="alert('The button was clicked.');">

but when I tried to change it to 'file' type:

<input type="checkbox" onClick="document.getElementById('theSubmitButton').click();">Check the box to simulate a button click
<input type="file" name="theSubmitButton" id="theSubmitButton" value="Button" onClick="alert('The button was clicked.');">

It wouldn't work in Firefox and IE8. But the file browser window appears in Google Chrome.

Is there a problem with this approach? How could I make it work in FF and IE8?

Thank you very much!

0

2 Answers 2

5

That's a security restriction to prevent malicious javascript from uploading files from a users computer without him wanting that or tricking him in doing so by opening a file selection dialog. You can't do it in javascript, and it's not a bug, it's a feature.

Sign up to request clarification or add additional context in comments.

2 Comments

Just an addition to this answer: if you need to open file dialog at random time - you can use flash-based uploaders.
"security", "feature"
0

It also depends, why you need this? If this is for testing purposes you can use some existing frameworks, like FuncUnit:

http://www.beletsky.net/2010/12/functional-testing-by-javascript-with.html

1 Comment

Thanks for replying. I just want to reduce the number of clicks the user must do, but I guess I can't. Thanks for your link, I might use it someday. :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.