点击超链接弹出一个上传文件的窗口

本文介绍如何在不支持onClick事件的input type=file元素中,利用CSS技巧实现模拟点击事件的功能,适用于Firefox、IE及Google Chrome等浏览器。

方法一:

 

W3C处于安全性考虑,并没有为type为file的input空间指定onclick事件(IE不怎么按W3C标准办事儿)。
但是我们可以通过CSS技术来模拟这个功能,前提是你的浏览器支持半透明效果(opacity)
以下是给你的示例(Firefox, IE和Google Chrome下测试均通过):

HTML code

<style>
div.fileinputs
{
position
: relative;
overflow
: hidden;
width
: 70px;/* this width should be changed */
}

div.fakefile
{
position
: absolute;
top
: 0px;
left
: 0px;
z-index
: 1;
}

input.file
{
position
: relative;
text-align
: right;
left
: -132px; /* this width should be changed */
*left
: -152px; /* this width should be changed */
z-index
: 2;
-moz-opacity
:0;
filter
:alpha(opacity: 0);
opacity
: 0;
}
</style>
<div class="fileinputs">
<input type="file" class="file" />
<div class="fakefile">
<a href="" onclick="return false;">Click Me</>
</div>
</div>
方法二:
<script language="javascript">
      function sDialog() {
           var dataForm = document.forms['dataForm'];
           dataForm.uploadFile.click();
      }
</script>
<form name="dataForm" enctype="multipart/form-data">
      <input name="uploadFile" type="file" style="display:none;">
      <a href="javascript:void(sDialog());">选择文件</a>
</form>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值