Php 使用jQuery、HTML和CSS创建自定义文件上载
我在设计一个网站时遇到了一个小问题。已经结束了,但我认为jQuery是这里的问题所在 代码如下:Php 使用jQuery、HTML和CSS创建自定义文件上载,php,jquery,html,css,Php,Jquery,Html,Css,我在设计一个网站时遇到了一个小问题。已经结束了,但我认为jQuery是这里的问题所在 代码如下: <img src="files/register_page/upload_photo/body.png" id="upload"> <input type="file" name="file_upload" id="file_upload" style="visibility:hidden;"> 但是,单击img时,不会发生任何事情,此时会弹出一个文件上载对话框。 如果你需
<img src="files/register_page/upload_photo/body.png" id="upload">
<input type="file" name="file_upload" id="file_upload" style="visibility:hidden;">
但是,单击img时,不会发生任何事情,此时会弹出一个文件上载对话框。
如果你需要更多的信息,请告诉我。如果不是,这里会有什么问题?我正在使用jQuery 1.8.0。使用HTML5元素:
或
可以在不使用显示
或可见性
CSS属性的情况下隐藏元素
另外,这里是FF上label元素的一个解决方法,您可以通过
opacity:0
更改visibility:hidden
,并:
$('#file_upload').focus(function() {
$(this).click();
});
。但是如果主脚本工作正常,这应该是不必要的。您没有为“文件上传”设置“onclick”操作。@johnymop您知道文件输入是如何工作的吗?@johnymop是的,我相信您在使用jquery时不必设置onclick。哦,我明白了:)@johnymop这很奇怪,它在JSFIDLE中工作,但我编程的时候不是这样的…这很有效!太棒了,你能解释一下为什么它是这样工作的吗?哦,我明白了:P你对让它也为FF工作有什么建议吗?我认为这对许多用户来说可能很重要/@jslvtr是的,我正在尝试一些更粗糙的jQuery,让我们看看我是否在一两分钟内成功。@jslvtr这可能看起来有点尴尬,但是,您的原始代码似乎在FF/Chrome/IE上运行良好@jslvtr在哪个浏览器中?无论如何,请尝试更改
可见性:隐藏通过不透明度:0
,我在回答中发布了FF中标签元素的解决方法。这些输入元素是动态添加的吗?
<label for="file_upload"><img src="files/register_page/upload_photo/body.png" id="upload"></label>
<input type="file" name="file_upload" id="file_upload" style="visibility:hidden;">
position:absolute; top:-100px;
opacity:0;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
width:0; height:0;
$('#file_upload').focus(function() {
$(this).click();
});