jQuery,选择输入文件并将其设置为另一个输入

时间:2015-04-18 17:53:26

标签: javascript jquery forms

该网站有2个输入字段,我只选择1个字段,另一个是不可见的。现在我想将不可见的.val()更改为所选的.val(),因此两个字段都会上传相同的文件。这有什么作用?

如果我这样做:

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

我收到此错误: 未捕获的InvalidStateError:无法设置'值'属性' HTMLInputElement':此输入元素接受一个文件名,该文件名只能以编程方式设置为空字符串。

2 个答案:

答案 0 :(得分:23)

您的代码几乎正确无误:

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

这将使jQuery更改输入的值。但是,input type="file"永远不能用JavaScript(也不是Flash,也不能通过编程方式)进行更改。这是所有最终用户浏览器中实施的安全功能,可防止网站遭受琐碎的恶作剧:

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

启用从用户计算机上传的文件URL的程序化更改将是怪异的安全问题。

*仅适用于网络上的JavaScript

答案 1 :(得分:0)

您的代码几乎是正确的,只是拼写错误。 请检查

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