使用文件输入进行onchange的解决方法是什么?

时间:2011-08-24 19:44:36

标签: javascript internet-explorer-8 onchange

正如你们中的一些人可能已经知道的那样,Internet Explorer的onchange事件在版本9之前从根本上被打破。而不是在发生更改时触发,它会在输入字段失去焦点并且发生更改时触发。

这会导致复选框和单选按钮(“使用onclick代替”)和文本字段(“使用keyup代替”)的各种变通办法。

但是,我遇到了文件输入的问题,而且我无法弄清楚我做了什么以获得通知已经选择了一个新文件,而不是当用户点击其他地方时。我无法将自己附加到鼠标事件中,因为它与鼠标无关;我无法将自己附加到键盘事件上,因为它与键盘无关。

如果可以解决问题,我愿意使用特定于IE的东西。


其他信息:

我使用jQuery 1.6和live方法来附加事件。

$(".upload").live("change", function() { /* stuff here */ });

1 个答案:

答案 0 :(得分:3)

使用onFocus事件并结合检查以确保存在值。这是因为在用户选择文件并删除了OS文件选择对话框后,焦点将返回到输入元素。