我可以在表单输入中单击一次来触发双击吗?
我有一个用于提交文件的表单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/
我发现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中不起作用,所以我无法测试它们。