我对Google Chrome中的HTML标签<input type="file" />
有问题。
"浏览"按钮显示在页面上,如预期的那样,但是当我单击它以选择文件时,浏览器的弹出对话框窗口根本不打开。
i've测试了我的表格和Firefox,并且工作正确。有什么想法是怎么了,我该如何解决?
这也是代码:
<form action="" method="post" accept-charset="utf-8" enctype="multipart/form-data">
<label for="imgfile">File input</label>
<input type="file" name="imgfile" />
这在Chrome V88.0上发生在我身上,我尝试了所有内容 - 删除所有事件处理程序,使最简单的形式成为可能,将所有其他HTML和JS删除从页面上 - 单击"选择文件"时,文件选择对话框仍不会出现。按钮。
然后我关闭Chrome并重新开放...然后又起作用。
黄金建议:
您是否尝试过将其关闭并再次打开?
在我的情况下,问题如下:
- 整个文档具有"点击处理程序"
-
在单击"柄"中,代码正在用
取消所有传播返回false;
删除此返回语句解决了解决问题的问题。浏览是因为我去了Codepen并尝试了各种文件上传器。
在我的特定情况下,我几天前运行了Chrome更新,但在更新后未能重新启动Chrome。
导航以帮助&gt;关于Google Chrome,Google告诉我需要重新启动。
重新启动后,浏览器本地文件拾取器开始再次出现。
没有理由在chrome中不应该使用。您是否尝试过将标记复制到您给我们的html文件中并打开的示例中?它可以工作吗?除非有一些第三方插件或扩展名停止它。
可能是您已经在其他地方进行了标记,这引起了这个问题。也许在输入字段上捕获点击事件之前的一层,然后才能使其降低到"浏览"按钮?
我也遇到了相同的问题,它可以在野生动物园中起作用,但不能在镀铬中工作。原来,我只需要更新我的Chrome浏览器即可。显然,如果您的Chrome版本已经过时了两个星期的功能,这已经存在了十多年的休息时间...您知道Google Engineering最好...
输入类型文件不起作用的原因可能有两个。
- 文件类型输入样式为可见性:隐藏。隐藏输入使用不透明度:0。
- 可能会在文档或父元素上单击事件,或者是拒绝单击输入标签的事件。
我最近也有同样的问题。重新启动Chrome修复了它。转到Chrome://重新启动。我停用了它,重新启动了铬,最终工作。
在我的情况下,供应商CSS正在写默认的CSS来隐藏要显示的输入类型文件:无,如下所示,删除该/覆盖那使浏览以预期的方式工作。希望可以有所帮助,以验证是否从其他地方驱动输入[type ='file']。
//remove the below code
input[type="file"] {
display: none;
}
我在 window
上有一个全球事件侦听器:
window.addEventListener("click", event => {
event.preventDefault();
event.stopPropagation();
});
当然,这阻止了我的输入反应。请小心进行preventDefault()
我有一个类似的问题,我藏着 input
元素并尝试在用户时触发弹出窗口,单击表格标签。
在我的情况下,标签元素上的for
属性与输入的id
不匹配。一旦我在标签上更新了for
以匹配输入的id
弹出窗口效果很好。
简单示例:
<form>
<label for="images">Click here to upload your images!</label>
<input id="images" type="file" accept="images/*" style="display:none;" />
</form>
我发现很难设置输入本身,因此我隐藏了实际的输入元素,并将标签样式看起来像文件上传输入。
现在,每当有人单击标签元素时,即使输入元素被隐藏了,文件弹出窗口也会出现。
i set event.preventdefault()在AJAX请求中,这就是为什么未以表单数据发送输入值
这对我有用
<input type="file" id="fileProfile2" name="fileProfile2" accept="image/png,image/jpeg" >
试图在本地上传2GB文件时(例如Photos Library.photoslibrary
)
您必须像这样使用
<form enctype="multipart/form-data">
.......
.......
<label for="imgfile">File input</label>
<input type="file" name="imgfile" />
<input type="submit" name="submit" value="submit" />
</form>
希望它能帮助某人;就我而言,问题是我将event.preventDefault()
适用于整个文档,因为我的EventListener适用于整个文档:
function onMouse( event ) {
event.preventDefault();
// calculate mouse position in normalized device coordinates
// (-1 to +1) for both components
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
mouseEventHandler( event );
}
document.addEventListener( 'click', onMouse, false );
我只希望我的自定义事件处理程序适用于一个Div,而不是整个文档,特别是我不希望我的活动处理程序覆盖表单事件,而在另一个Div中设置。因此,我将eventlisteners的范围限制在"可视化范围"div上:
document.getElementByID('visualizationContainer').addEventListener( 'click', onMouse, false );
修复了所有内容。
观察到的症状:"选择文件"按钮(来自输入type = file html tag)不弹出文件选择对话框。同一网页在同一设备上的Firefox(版本68.5.0)上工作。
答案:如果未能选择上传症状的文件,请在Android上使用Firefox。下面的代码确实在Linux Chrome上使用(版本80.0.3987.87)。它还可以在Windows 10 Chrome(版本80.0.3987.122)上使用。这似乎仅适用于Android,并且可能仅适用于某些版本。
硬件:LG-H812Android版本:6.0Chrome版本:80.0.3987.117
代码:
<!DOCTYPE HTML>
<html lang = "en">
<head>
<title>t9.php</title>
</head>
<body>
<h1>t9.php</h1>
<form method='post' enctype='multipart/form-data'>
<input type='file' name='filename'/><br>
<br>
<input type='submit' name='submit' value='submit'/><br>
<br>
</form>
</body>
</html>