我可以在表单输入中单击一次来触发双击吗?

我有一个用于提交文件的表单input ,我设计了它,因为我不喜欢本机风格。 现在,我有一个按钮,当单击它时,它会打开对话框以选择文件。 只需单击Firefox和Chrome即可正常工作,但在IE中无法正常工作。 按钮需要双击才能在IE中打开对话框。

我尝试使用jQuery单击一次触发双击:

 $("input").click(function() { $(this).dblclick(); }); 

但是,它似乎不起作用。 是否有任何其他方法可以触发IE的双击?

这是演示: http : //jsfiddle.net/HAaFb/

答案不是触发dblclick,而是用IE打开文件对话框……对吗? 所以我认为解决方案是触发文件输入的点击(将被隐藏?)

 $("#formId").find("input[type='file']").trigger('click'); 

在你的小提琴中,我这样做:

 $("input").click(function() { $('input[type="file"]').click(); }); 

我试试这个

 $('input[type="file"]').hide().parent().append($('').attr('class', 'filebutton').text('Upload')); $(".filebutton").click(function() { $('input[type="file"]').click(); }); 

有了这个CSS

 form { color:#666; } .filebutton { content:'upload'; font:small-caps 15px Georgia; letter-spacing:1px; border-radius:10px; border:1px solid #eee; width:100px; padding:10px; margin:20px; text-align:center; position:absolute; left:0; top:0; z-index:1; background-color:#f8f8f8; } .filebutton:hover { background-color:#f3f3f3!important; color:#c00; cursor : pointer; } 

它的工作原理……

这样的事情怎么样:

 var count=0; $("input").click(function(e) { count++; if(count==2){ count=0; }else{ e.preventDefault(); } }); 

演示: http : //jsfiddle.net/HAaFb/1/

http://jsbin.com/ukotit/17/edit

我发现jQuery文件上传演示页面实际上重新定位了文件输入字段(同时“隐藏”),以便浏览按钮很好地位于“添加文件”按钮的区域内。 因此,当您使用IE 8/9/10单击该按钮时,只需单击一下即可打开。

http://blueimp.github.io/jQuery-File-Upload/

在一个CSS我看到:

 .fileinput-button input { ... right: 0px; ... transform: translate(300px, 0) scale(4); } 

文件输入是IE中的本机/ ActiveX组件,因此不能对它们执行事件 – 对于选择输入也是如此。

你真的需要双击吗?

我知道我可能迟到了派对,但万一其他人偶然发现了这篇文章,我能够解决类似的问题:

 $("#uploadInput").bind('mousedown', function (event) { $(this).trigger('click') }); 

适用于IE10和IE11。

 $("input").click(function() { $(this).trigger('dbclick'); }); 

我没有检查过这个,但我想你需要使用这样的东西:

 $('input').on('click', function() { $(this).trigger('dblclick'); }); 

我希望那不是傻瓜,哈哈。

这是你的CSS …如果你在IE中禁用不透明度和剪辑内容,你会看到实际的浏览按钮在右边。

确保在IE9中没有使用filter:不透明度,那个适用于我。 JSFiddle在IE7 / 8中不起作用,所以我无法测试它们。