该网站有2个输入字段,我只选择1个字段,另一个是不可见的。现在我想将不可见的.val()更改为所选的.val(),因此两个字段都会上传相同的文件。这有什么作用?
如果我这样做:
$('#input_file').change(function() {
var fileSelect = $(this).val();
$('#hidden_input_file"]').val(fileSelect);
console.log(fileSelect);
});
我收到此错误: 未捕获的InvalidStateError:无法设置'值'属性' HTMLInputElement':此输入元素接受一个文件名,该文件名只能以编程方式设置为空字符串。
答案 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);
});