input file 文件上传控件隐藏后用button触发它的click事件

kbryant 2009-11-09 02:06:15
input file 文件上传控件隐藏后用button触发它的click事件为什么文件就上传不上去了,代码


<input type="button" value="test" onclick="f.click()" class="btn_mouseout"/>
<input type="file" id="f" name="f" onchange="doChange(this);" contentEditable="false" accept="text/html" style="disable:none"/>
...全文
109050 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuguowei07 2012-10-09
  • 打赏
  • 举报
回复
17楼的方法,FireFox怎么实现?
style.posTop和style.posLeft在FireFox里没有
zqqlj2004 2012-09-05
  • 打赏
  • 举报
回复
我是来看17楼的!
ILAww 2012-06-10
  • 打赏
  • 举报
回复
我遇到了同样的问题,想把上面的input type="file"的mouseover事件转移到下边的虚拟按钮上,不知道怎么弄,看看前辈的代码
fengshangyue 2012-02-22
  • 打赏
  • 举报
回复
//js代码
function touchOffUpload(){
$('#Filedata').click();
return false;
}

//html代码
<a href="javascript:;" onclick="touchOffUpload()" id="upload_button">上传</a>
<input class="file" id="t_file"" type="file" name="Filedata" id="Filedata" />
yo010yo 2011-12-15
  • 打赏
  • 举报
回复
遇到同样的问题了,看看高手怎么解决的
luyillll 2011-12-07
  • 打赏
  • 举报
回复
试一试
tcx814616 2011-08-22
  • 打赏
  • 举报
回复
如何解决各浏览器的兼容问题?
Isnotsuitable 2011-03-10
  • 打赏
  • 举报
回复
研究下,应该还挺不错的
shubangjun 2010-08-25
  • 打赏
  • 举报
回复
先试下~~
kuaiman1 2010-08-06
  • 打赏
  • 举报
回复
绝对要顶
cloudgamer 2010-03-20
  • 打赏
  • 举报
回复
1.指定用一个容器。
容器最好指定高和宽,并且overflow为hidden,不是块级元素的最好设display为block(为了高和宽的正确呈现);
2.在容器里放一个file控件,并设置样式,使能触发弹出选择文件框的部分覆盖整个容器,并设置成全透明。
容器指定准确的高和宽就是为了能通过file控件中不多的能设置的样式来覆盖整个容器;
3.现在已经把容器模拟成file控件了,可以直接设置容器的样式来模拟设置file控件的样式了。

具体参考这里的file样式部分
lijing0511 2010-03-09
  • 打赏
  • 举报
回复
看了半天,还是搞不明白
星尘物语 2010-03-04
  • 打赏
  • 举报
回复
引用 22 楼 yjfjebj789 的回复:
确实, 以前也因为这个郁闷了半天, 后来才知道是IE的安全限制了

然后上网查了些资料,也像楼上那样(设file透明,然后动态生成,改变坐标),  便可实现单按钮多附件上传了(跟163一样)


163 可以多选呢。怎么弄啊?
zhizunyue 2010-01-22
  • 打赏
  • 举报
回复
wazdoyang 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 warison2008 的回复:]
都说啦是ie的安全性限制,没人相信?
做样式哪个都可以做出来
关键是你提交当前form的时候,必然出现“拒绝访问的错误”。
所以楼上的,样式写的再好也是没法子
楼主需要实现的是,能修改file的样式,又能提交当前页面
,这样的方式,目前我在网上没看见过
file的样式难看就难看啦,我们好几个项目都没解决这个问题
哪个高手有更好的解决方式请贴出来,
不过别再贴样式的解决方法啦,没意思
关键是修改后能否成功的上传文件
[/Quote]


IE下 可以調用file控件的 click 事件 彈出選擇框 並可以成功上傳,只是在火狐下 才不會起效
wazdoyang 2009-12-23
  • 打赏
  • 举报
回复
妈的 怎么回事啊
昨天回的帖子 今天在我参与的帖子里就找不到
今天这个回的帖子 晚上回家又没了 草你大爷 csdn
crazylaa 2009-11-27
  • 打赏
  • 举报
回复
还不如自己写个上传控件
打字员 2009-11-26
  • 打赏
  • 举报
回复
说实话,这个没有多大意思。。。

如果真想换的话,就这样:


<div class='file'>
<input type="file" class="file_file" id="file" onchange="setValue()"/>
<input type='text' class="file_txt" id='file_txt' />
<div class="file_button"></div>
</div>



.file{
width:300px;height:80px;
position:relative;
}
.file_file{
width:300px;
filter:alpha(opacity=0);
opacity:0;
position:absolute;left:0px;top:0px;
z-index:10;
}
.file_txt{
width:240px;height:20px;
text-align:left;
border:1px #a8a8a8 solid;
position:absolute;left:0px;top:0px;
z-index:1;
font-size:12px;
white-space:nowrap;
overflow:hidden;
line-height:20px;
}
.file_button{
width:50px;height:22px;
background:#a8a8a8;
position:absolute;right:0px;top:0px;
z-index:1;
}



不过代价过于大了,在我看来,不如不用


ChDw 2009-11-11
  • 打赏
  • 举报
回复
2楼当然不可以算正确。可以像我示例代码那样,设置为透明。这样虽然和隐藏不太一样,但是界面效果是接近的
愤怒的月光 2009-11-10
  • 打赏
  • 举报
回复
2楼应该是正解~~~
加载更多回复(22)
什么是SWFUpload?   SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 [编辑本段]SWFUpload的主要特点   * 可以同时上传多个文件;   * 类似AJAX的无刷新上传;   * 可以显示上传进度;   * 良好的浏览器兼容性;   * 兼容其他JavaScript库 (例如:jQuery, Prototype等);   * 支持Flash 8和Flash 9;   SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的在文件上传过程中更新页面内容来营造各种动态效果。   在使用SWFUpload之前,请确认你具备一定的JavaScript和DOM知识。在实际开发中,大部分的错误都是由于错误的设置和低劣的Event Handlers处理程序所造成的。 [编辑本段]文档中文翻译   http://www.v-sky.com/doc/swfupload/v2.1.0/Documentation.html [编辑本段]效果演示   * Classic Form Demo http://demo.swfupload.org/formsdemo ;   * Features Demo http://demo.swfupload.org/featuresdemo ;   * Application Demo http://demo.swfupload.org/applicationdemo ;   * v1.0.2 Plugin Demo http://demo.swfupload.org/v102demo ; [编辑本段]选择合适的Flash控件   在发行包(SWFUpload v2)中含有2个版本的Flash控件(swfupload_f8.swf 与wfupload_f9.swf),其中第一个版本拥有最佳的兼容性,但是为此损失了部分功能;而第二个版本提供了一些附加的功能但是损失了兼容性。 [编辑本段]SWFUpload的初始化与配置   首先,在页面中引用SWFUpload.js ,如      然后,初始化SWFUpload ,如   var swfu;   window.onload = function () {   swfu = new SWFUpload({   upload_url : "http://www.swfupload.org/upload.php",   flash_url : "http://www.swfupload.org/swfupload_f9.swf", file_size_limit : "20480"   });   };   以下是一个标准的SWFUpload初始化设置所需的参数,你可以根据需要自己进行删减:   {   upload_url : "http://www.swfupload.org/upload.php", 处理上传请求的服务器端脚本URL   file_post_name : "Filedata", 是POST过去的$_FILES的数组名   post_params : {   "post_param_name_1" : "post_param_value_1",   "post_param_name_2" : "post_param_value_2",   "post_param_name_n" : "post_param_value_n"   },   file_types : "*.jpg;*.gif", 允许上传的文件类型   file_types_description: "Web Image Files", 文件类型描述   file_size_limit : "1024", 上传文件体积上限,单位MB   file_upload_limit : 10, 限定用户一次性最多上传多少个文件,在上传过程中,该数字会累加,如果设置为“0”,则表示没有限制   file_queue_limit : 2, 上传队列数量限制,该项通常不需设置,会根据file_upload_limit自动赋值   fl