【HTML+CSS】input:file
2017-01-11 00:00
204 查看
【问题1】
原生的 input:file 外观通常不符合页面设计需求,这时我们会想用div或其他方法重新实现一个按钮,点击此按钮时触发 input:file 的 click 事件以弹框选择路径。然而,ie低版本仅支持手动触发click。
【解决方案】
将 input:file 控件放在自定义按钮的上方,并通过 css 的 “opacity: 0;” 将其设置为透明。
【问题2】
有时我们通过在 input:file 上添加 onchange 事件监听用户选择的路径变化,但当用户选择的路径与上次的一样时,此事件将不会触发。
【解决方案】
当我们需要在每次用户选择路径后都执行某些操作时,会想在 onchange 事件中获取路径后将 file 的value(或 files) 置为初始值(空字符串/空数组),然而部分浏览器禁止对这两个属性进行赋值,所以更好的做法是,在这些浏览器环境下,将 file 控件克隆后替换,如下:
原生的 input:file 外观通常不符合页面设计需求,这时我们会想用div或其他方法重新实现一个按钮,点击此按钮时触发 input:file 的 click 事件以弹框选择路径。然而,ie低版本仅支持手动触发click。
【解决方案】
将 input:file 控件放在自定义按钮的上方,并通过 css 的 “opacity: 0;” 将其设置为透明。
【问题2】
有时我们通过在 input:file 上添加 onchange 事件监听用户选择的路径变化,但当用户选择的路径与上次的一样时,此事件将不会触发。
【解决方案】
当我们需要在每次用户选择路径后都执行某些操作时,会想在 onchange 事件中获取路径后将 file 的value(或 files) 置为初始值(空字符串/空数组),然而部分浏览器禁止对这两个属性进行赋值,所以更好的做法是,在这些浏览器环境下,将 file 控件克隆后替换,如下:
triggerbtn.on('change',function g() { //... 获取value/files及其他操作 try {// 清空控件中的值 - 确保下次选择文件后肯定触发 change this.files = []; this.value = ''; } catch (e) {// 兼容处理,部分浏览器不支持 对 this.files 及 this.value 赋值 var n = triggerbtn.clone(true); n.on('change', g); triggerbtn.replaceWith(n); triggerbtn = n; } //... 一些操作 };
相关文章推荐
- Html+CSS input type=file 文件类型限制属性 accept (HTML 5)
- HTML+CSS优化“文件选择”控件(<input type="file">)
- html css隐藏input的file特性
- 通过HtmlInputFile控件上传文件的类
- input file的CSS设定
- 如何在ASP.NET里用HtmlInputFile控件来上载文件。
- .NET上传控件源码[HtmlInputFileControl]
- .NET上传控件源码[HtmlInputFileControl]
- 通过HtmlInputFile控件上传文件的类
- 清空上传控件HtmlInputFile的方法
- [翻译]运用HtmlInputFile服务器控件上传多个文件
- HTML Controls->ASP.NET HtmlInputFile Control
- 通过HtmlInputFile控件上传文件的类
- 清空上传控件HtmlInputFile的方法
- 通过HtmlInputFile控件上传文件的类
- 将HtmlInputFile改为服务器控件
- 为HtmlInputFile自动加上multipart/form-data编码类型
- 关于CommunityServer2.1附件过大报错,即ASP.NET2.0中附件设置问题"Cannot Upload Large Files When You Use the HtmlInputFile Server Control"
- .NET上传控件源码[HtmlInputFileControl]
- HtmlInputFile限定格式的几种不完全方法