jqueryclickjquery-forms-plugineventtrigger

jquery trigger: how can I trigger the browse file in the input when I click on a text link?


Following up on this post, I have another issuer - how can I trigger the browse file in the input when I click on a text link?

Basically I want to hide the form but it will be triggered when you click on the upload text link.

<a href="#" class="upload">upload</a>
<form action="upload.php" method="post" enctype="multipart/form-data" id="myForm" style="display:none;">
  <input type="file" multiple="multiple" name="file[]" />
  <input type="submit" name="upload" value="Submit"/>
</form>
<div id="output"></div>

This is my working Javascript code:

$(document).ready(function(){
    $('.upload').click(function(){
        $(this).trigger($('input[type=file]'));
        return false;
    });

    $('input[type=file]').change(function() {
        $('#myForm').ajaxSubmit({
               target: '#output'
        });
    });
});

Solution

  • You can't use style="display:none;" use style="visibility:hidden;"

    and I changed trigger to click:

    $('.upload').click(function(){
        $('input[type=file]').click();
        return false;
    });
    


    Reasoning:

    The input fields will not be sent to the server with display:none, but will be with visibility:hidden.