正如你们中的一些人可能已经知道的那样,Internet Explorer的onchange
事件在版本9之前从根本上被打破。而不是在发生更改时触发,它会在输入字段失去焦点并且发生更改时触发。
这会导致复选框和单选按钮(“使用onclick
代替”)和文本字段(“使用keyup
代替”)的各种变通办法。
但是,我遇到了文件输入的问题,而且我无法弄清楚我做了什么以获得通知已经选择了一个新文件,而不是当用户点击其他地方时。我无法将自己附加到鼠标事件中,因为它与鼠标无关;我无法将自己附加到键盘事件上,因为它与键盘无关。
如果可以解决问题,我愿意使用特定于IE的东西。
其他信息:
我使用jQuery 1.6和live
方法来附加事件。
$(".upload").live("change", function() { /* stuff here */ });
答案 0 :(得分:3)
使用onFocus
事件并结合检查以确保存在值。这是因为在用户选择文件并删除了OS文件选择对话框后,焦点将返回到输入元素。