7

笔记:

下面的答案反映了 2009 年旧版浏览器的状态。现在,您实际上可以在 2017 年使用 JavaScript 动态/编程地设置文件输入元素的值。

有关详细信息以及演示,请参阅此问题中的答案:
如何以编程方式设置文件输入值(即:拖放文件时)?

如果没有上传(浏览)文件,我想fileuploader通过按钮单击设置值。这可能还是我的方式错误?
示例 html:

<input type="file" id="files" />
<input type="button" id="btnTest" value="Test"/>

和jQuery:

 $("#btnTest").click(function() {
      alert('test');
     //$('#files').html('pp.img');
     //$('#files').val('pp.img');
     $('#files').text('pp.img')
});

但它对我不起作用。

4

3 回答 3

8

是否可以?

如果您能够通过 JavaScript 执行此操作,那将是一个严重的安全漏洞,因为您可以指定用户计算机上的任何文件,这就是为什么您不允许设置文件输入元素的值的原因。

于 2012-08-30T04:42:09.750 回答
5

好吧,我必须说没有跨浏览器的方法可以做到这一点。“未选择文件”文本位于小部件的实现定义部分,它完全是特定于浏览器的。如果有必要,当 value 属性为空时,您可以简单地使用 CSS 来覆盖文本。

于 2012-08-30T04:43:14.567 回答
3

我认为您根本不允许设置该值。因为如果可以的话,您可以C:\passwords.txt在那里输入并自动提交值。不是很安全。

于 2012-08-30T04:41:59.487 回答