输入文件onchange事件未在chrome中触发

时间:2011-07-08 10:41:01

标签: javascript events google-chrome

这是我在chrome中注意到的一个奇怪的事情。如果用户选择一个文件然后再次选择同一个文件再次打开文件对话框,则chrome不会在firefox执行时触发onchange事件。

有人也注意到了吗?

3 个答案:

答案 0 :(得分:3)

这是Chrome的一项众所周知的功能,快速Google on the topic会带来一些有趣的讨论。

我觉得change事件不会触发,因为没有任何改变(你选择的是同一个文件)

至于你的问题,你到底在问什么?您是在寻找改变这种行为的方法,还是只想知道我们是否也注意到了这一点?

如果您想要解决此问题,只需在Javascript中创建一个新文件输入并替换之前的文件。通过这种方式,您的change事件可以解雇。

答案 1 :(得分:3)

function resetFileInput($element) {
  var clone = $element.clone();
  $element.replaceWith(clone);
}

然后使用:

$('#element_id').on('change', function(){
...
});

对我来说工作得很好!

答案 2 :(得分:1)

重置一个适合我的输入文件的简单解决方案:

document.getElementById('idOfInput').value = '';
相关问题