Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用jQuery、HTML和CSS创建自定义文件上载_Php_Jquery_Html_Css - Fatal编程技术网

Php 使用jQuery、HTML和CSS创建自定义文件上载

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时,不会发生任何事情,此时会弹出一个文件上载对话框。 如果你需

我在设计一个网站时遇到了一个小问题。已经结束了,但我认为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时,不会发生任何事情,此时会弹出一个文件上载对话框。 如果你需要更多的信息,请告诉我。如果不是,这里会有什么问题?我正在使用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();
});