我有一个表单input
用于提交文件,我设计了它,因为我不喜欢原生风格。现在,我有一个按钮,当单击它时,它会打开对话框以选择文件。只需单击Firefox和Chrome即可正常工作,但在IE中无法正常工作。 按钮需要双击才能打开IE中的对话框。
我尝试使用jQuery单击一下来触发双击:
$("input").click(function() {
$(this).dblclick();
});
然而,它似乎不起作用。有没有其他方法可以触发IE的双击?
答案 0 :(得分:3)
这样的事情:
var count=0;
$("input").click(function(e) {
count++;
if(count==2){
count=0;
}else{
e.preventDefault();
}
});
答案 1 :(得分:3)
我发现jQuery文件上传演示页面实际上重新定位了文件输入字段(同时“隐藏”),以便“浏览”按钮位于“添加文件”按钮的区域内。因此,当您使用IE 8/9/10单击该按钮时,只需单击一下即可打开。
http://blueimp.github.io/jQuery-File-Upload/
在我看到的一个CSS中:
.fileinput-button input {
...
right: 0px;
...
transform: translate(300px, 0) scale(4);
}
答案 2 :(得分:2)
答案不是触发dblclick,而是用IE打开文件对话框......对吗?所以我认为解决方案是触发文件输入的点击(将被隐藏?)
$("#formId").find("input[type='file']").trigger('click');
在你的小提琴中,我这样做:
$("input").click(function() {
$('input[type="file"]').click();
});
我试试这个
$('input[type="file"]').hide().parent().append($('<span />').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;
}
它有效......
答案 3 :(得分:1)
文件输入是IE中的本机/ ActiveX组件,因此不能对它们执行事件 - 对于选择输入也是如此。
你真的需要双击吗?
答案 4 :(得分:1)
我知道我可能迟到了这个派对,但万一其他人偶然发现了这篇文章,我能够解决类似的问题:
$("#uploadInput").bind('mousedown', function (event) {
$(this).trigger('click')
});
使用IE10和&amp; IE11。
答案 5 :(得分:0)
$("input").click(function() {
$(this).trigger('dbclick');
});
答案 6 :(得分:0)
我没有检查过这个,但我想你需要使用这样的东西:
$('input').on('click', function() {
$(this).trigger('dblclick');
});
我希望那不是傻瓜,哈哈。
答案 7 :(得分:0)
这是你的CSS ...如果你在IE中禁用不透明度和剪辑内容,你会看到实际的浏览按钮在右边。
确保IE9中没有使用过滤器:不透明度,那个适用于我。 JSFiddle在IE7 / 8中不起作用,所以我无法测试它们。