我们有这种标记:
<a href="#">
<input type="file" />
</a>
默认情况下,当您点击输入时,会出现“选择文件”窗口,并且位置会更改为“#”。如何防止浏览器更改位置?
我尝试过:
//location still changes
$('input').bind('click', function (e) {
e.stopPropagation();
});
//prevents "Select file" window
$('input').bind('click', function (e) {
e.preventDefault();
});
//prevents "Select file" window
$('a').bind('click', function (e) {
e.preventDefault();
});
答案 0 :(得分:1)
尝试将$(e)
更改为e.
e.preventDefault();
执行$(e).preventDefault()
时会导致错误
Uncaught TypeError: Object [object Object] has no method 'preventDefault'
答案 1 :(得分:0)
您需要检查用户是否单击了a
元素而不是输入文件。这应该有用。
$('a').click(function(e) {
if ($(e.target).is('a')) {
e.preventDefault();
}
});
<强> DEMO 强>