gpt4 book ai didi

php - 使用 jQuery、HTML 和 CSS 创建自定义文件上传

转载 作者:太空宇宙 更新时间:2023-11-04 15:32:42 26 4
gpt4 key购买 nike

我在设计网站时遇到了这个小问题。一切都结束了,但我认为 jQuery 是这里的问题。

代码如下:

<img src="files/register_page/upload_photo/body.png" id="upload">
<input type="file" name="file_upload" id="file_upload" style="visibility:hidden;">

而 jQuery 在文档的部分如下:

$(document).ready( function(){
$("#upload").click( function(){
$('#file_upload').click();
});
});

但是,单击 img 后,没有任何反应,应该弹出文件上传对话框。如果您需要更多信息或其他信息,请告诉我。如果不是,问题可能出在哪里?我正在使用 jQuery 1.8.0。

最佳答案

使用 HTML5 label元素:

<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;">

Fiddle

适用于 Chrome、IE 和 Opera,但不适用于 FF。

浏览器往往会限制您可以使用 input type="file" 执行的操作。 label 元素将焦点重定向到 id 属性等于其 for 属性的输入,因此这是触发不可见元素的解决方法。


虽然现代浏览器已经减轻了大部分限制,因此您可以毫无问题地触发 .click()

但是,您可以更改 CSS hack 以隐藏它,而无需使用 display:nonevisibility:hidden 来向后兼容旧版浏览器。要么

position:absolute; top:-100px;

或者

opacity:0;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
width:0; height:0;

可以在不使用 displayvisibility CSS 属性的情况下隐藏元素。

Fiddle


此外,这是 FF 上标签元素的解决方法,您可以通过 opacity:0 更改 visibility:hidden 和:

$('#file_upload').focus(function() {
$(this).click();
});

Fiddle .但如果主脚本运行良好,这应该是不必要的。

关于php - 使用 jQuery、HTML 和 CSS 创建自定义文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com