解决IE7错误“输入类型=文件”onchange fire两次?

时间:2011-09-14 16:15:31

标签: jquery events input internet-explorer-7 onchange

你有没有遇到过这个IE7的错误:

<input type="file" id="xxx">

<script> 
     $('#xxx').change(function(){ alert(1) })
</script>

当我点击输入&amp;选择一个文件,警报框第一次显示。然后我点击身体上的空白区域,警报框再次显示。即使我将更改事件绑定到带有JQuery 1.6的input:file(此时最新),也会发生这种情况。

我怎样才能以最简单的方式阻止这种情况?谢谢你的所有建议!

2 个答案:

答案 0 :(得分:6)

这是我在经历了一段时间的“头脑风暴”之后所做的:

$('input:file').click(
    function(){
         $(this).one(
              'change',
              function(){ alert(1) /*do stuff here*/ }
         )
    }
)

每次用户单击输入以选择文件时,我们将事件“更改”绑定一次。因此,每当用户想要选择文件时,事件就会触发一次。

感谢上帝,它有效!谢谢大家。

答案 1 :(得分:0)

一旦你的功能运行,我就会解除触发器的绑定