有没有办法让<input type="file">
在所有使用CSS的浏览器中看起来都一样?
答案 0 :(得分:4)
Quirksmode.org有一篇有趣的文章:http://www.quirksmode.org/dom/inputfile.html
答案 1 :(得分:2)
试试这个 -
答案 2 :(得分:1)
您可以尝试使用swfupload,这是一个在页面上嵌入微小的Flash文件而不是文件输入的开源项目...您可以使用CSS来设置触发Flash上传的按钮的样式,但是您需要。
缺点:使用起来可能很棘手,当然,您的用户必须拥有闪存。
上行:在上传对话框中可以同时选择多个文件!
答案 3 :(得分:1)
您可以简单地设置自己的文件输入按钮的样式。
只需将输入元素的CSS属性设置为style="display:none"
,然后在javascript中处理click事件。进一步阅读:
Using hidden file input elements using the click() method
编辑:事实证明,出于安全原因,这不再起作用。一点点破解就是将css样式设置为visibility:hidden
。
这是一个JSFiddle,我将<input>
字段放在页面末尾的某处,并使用<a>
元素触发openFileDialog。
//html
<input id="openFileDialog" type="file" id="files" name="files[]" accept=".json, .txt" />
//js
$("#openFile").on("click", function () {
//throws an error if browser doesn't support file upload
checkFileApiCompatibility();
//opens File Dialog
$("#openFileDialog").click();
$("#openFileDialog").on('change', function(){
openFile(this);
});
});