触发文件输入对话框
如何自动触发文件输入? 即。 在下面的链接中我想在加载时触发上传按钮
DEMO
$("#test1").trigger('click'); $("#test").trigger('click');
出于安全目的,无法在onload
自动单击文件输入。 没有任何用户交互就无法触发它。 当页面加载时页面激活任何内容时非常恶心。
顺便说说。 您可以使用按钮的标签 instaed,如下所示:
$("document").ready(function() { setTimeout(function() { $("#test1").trigger('click'); },10); $('#test1').click(function(){ alert('hii'); }) });
点击事件触发。
你可以写这样的东西
$(document).ready(function(){ $("input#test").click(); });
这应该工作正常
您的代码的问题在于您将click事件应用于输入以及包含按钮的div,而不是实际按钮。
如果你改变你的小提琴
和
$("#test1 button").trigger('click');
然后点击触发器将应用于按钮。 或者给你的按钮一个ID和fo
$("#buttonid").trigger('click');
你可以这样做:
$(document).ready(function () { $('#upld_btn').trigger('click'); });
像下面一样更改你的JS代码。
$("#test1 button").click(function() { $("#test").trigger('click'); });
工作演示
在没有用户操作的情况下,无法使用javascript
以编程方式打开“打开文件”对话框; 请参阅触发器在异步ajax done()上单击input = file 。
或者,可以创建一个元素来覆盖document
.ready()
事件中的html
,为用户提供click
打开“打开文件”对话框的选项,方法是click
input type="file"
元素,或者通过单击关闭html
叠加层“关” 。
$(function() { function openFileDialog() { button.fadeTo(0,1).find(input)[0].click(); dialog.hide(); } function closeDialog() { dialog.hide(); button.fadeTo(0,1); } var input = $("input[type=file]") , button = $("#button").on("click", function(e) { e.stopPropagation(); this.firstElementChild.click() }) , options = $("
input { width: 0; opacity: 0; } #button { position: relative; font-size: 32px; width: 150px; left: 32vw; opacity: 0; }
加载时显示输入文件对话框?
如此处所述,只有Internet Explorer允许以编程方式打开“文件上载”对话框。 所以简短的回答是否定的,没有办法在页面加载时自动打开文件上传对话框。
您可能会考虑的答案很长,您可以在用户点击任何内容时显示它。 您更喜欢AngularJS解决方案的事实告诉我们您正在编写单页应用程序。 此外,我认为您首次加载应用时不需要显示“文件上载”对话框。 在用户点击某些内容之后,您很可能需要在用户交互后显示它。 使用此处的AngularJS指令,可能看起来像是文件输入。 在单击(相同的用户交互)时,您还可以切换到AngularJS应用程序中的另一个路径,有效地模拟用户导航到另一个页面并自动向他显示“文件上载”对话框。