html input file隐藏触发,写上传文件时,将html中的<input type="file" />(选择文件) 元素隐藏,并通过其它方式点击触发...

file input的默认外观实在不好看,所以我们要搞定它。。

1. 首先,我们把file input放入一个label,并且将这个label显示为一定的宽高,比如显示为(bootstrap)btn的样式(这个label你把样式搞成啥样都行,都不会影响后面的功能);

2. 为此input增加样式,内联或css文件内写都可以:style="left:-9999px;position:absolute;"

3. 在label内增加文本(作为label btn的显示文本),比如下方示例中的span;

如此即可,无需再添加任何js函数,就能让这个label在被点击时,与file input点击产生同样的效果。这是label标签的一个bug,但是这个bug的通用性极好,连ie7都没问题。

我也查过网上的一些方案,我建议大家不要使用triger等模拟点击的方式触发file input的点击,从安全角度讲,js是不建议这样做的,所以兼容性完全没有保障,再就是,使用透明file input在指定区域悬挂遮盖鼠标的方式,因为要用js处理,所以在性能上会有问题,同时,经我测试,在快速操作时,还是会暴露出一些bug的,很挠头,只有我在本文中所写的方法,才是我认为最上乘的方案,有更好的方案,欢迎大家的指点。

如果需要显示文件名,就在file input的change事件里取它的value就行了。

原文:https://www.cnblogs.com/QinShen/p/14527854.html

这是一个网页的 HTML 代码,包含了一个 body 元素和一个 id 为 main 的 div 元素。其: - `<div id="GGA">` 表示一个 id 为 GGA 的 div 元素; - `<input type="file" name="" id="fileGGA">` 表示一个 typefileinput 元素,用于上传文件,id 为 fileGGA; - `<button id="BDGGA">选择文件</button>` 表示一个 id 为 BDGGA 的 button 元素,用于触发文件选择框; - `<button id="caculateGGA">统计</button>` 表示一个 id 为 caculateGGA 的 button 元素,用于触发数据统计功能; - `<div id="timeGGA">` 表示一个 id 为 timeGGA 的 div 元素,用于显示间区间; - `<span id="startTimeGGA">开始</span>` 表示一个 id 为 startTimeGGA 的 span 元素,用于显示起始间; - `<span>~</span>` 表示一个无 id 的 span 元素,用于显示间区间的分隔符; - `<span id="endTimeGGA">结束</span>` 表示一个 id 为 endTimeGGA 的 span 元素,用于显示结束间; - `<div id="show">` 表示一个 id 为 show 的 div 元素,用于显示统计结果; - `<div id="chenggS"></div>` 表示一个 id 为 chenggS 的 div 元素,用于显示成功数据的统计结果; - `<br>` 表示一个换行符; - `<div id="shibaiS"></div>` 表示一个 id 为 shibaiS 的 div 元素,用于显示失败数据的统计结果; - `<div id="errS"></div>` 表示一个 id 为 errS 的 div 元素,用于显示错误数据的统计结果; - `<div id="showt"></div>` 表示一个 id 为 showt 的 div 元素; - `<div id="showt2"></div>` 表示一个 id 为 showt2 的 div 元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值