最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

javascript - jQuery, Select Input FILE and also set it to another INPUT - Stack Overflow

matteradmin14PV0评论

The website has 2 input fields, I only select 1 field and the other one is invisible. Now I want to change the .val() of the invisible one to the .val() of the selected one, so both fields upload the same file. How does that work?

If I do this:

    $('#input_file').change(function() {
        var fileSelect = $(this).val();
        $('#hidden_input_file"]').val(fileSelect);
        console.log(fileSelect);
    });

I get this error: Uncaught InvalidStateError: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.

The website has 2 input fields, I only select 1 field and the other one is invisible. Now I want to change the .val() of the invisible one to the .val() of the selected one, so both fields upload the same file. How does that work?

If I do this:

    $('#input_file').change(function() {
        var fileSelect = $(this).val();
        $('#hidden_input_file"]').val(fileSelect);
        console.log(fileSelect);
    });

I get this error: Uncaught InvalidStateError: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.

Share Improve this question asked Apr 18, 2015 at 17:53 MaxiMaxi 1231 gold badge2 silver badges8 bronze badges 0
Add a comment  | 

2 Answers 2

Reset to default 27

Your code is almost correct:

$('#hidden_input_file').val(fileSelect);

This will make jQuery change the value of an input. However, the value of input type="file" can never* be changed with JavaScript (nor Flash, nor any means programmatically). This is a security feature implemented in all end-user browsers to prevent websites from a trivial mischievery:

$('#hidden_input_file').on('blur', function (e) {
    $('#hidden_input_file').val('c:\passwords.txt'); // won't work
});

Enabling the programmatical change of a file URL that is to be uploaded from a user's computer would be a monstrous security issue.

*only applies to JavaScript on the web

You can do it by waiting for the on change event of the original input

$("#Original").on("change", function (event) {
   let fileInputElement = document.getElementById('Picture');
   fileInputElement.files = event.target.files;
});

Articles related to this article

Post a comment

comment list (0)

  1. No comments so far