Internet Explorer文件输入菜单选择变化
-
21-09-2019 - |
题
我有这些动态的创建文件输入HTML元用于与一个jQuery-阿贾克斯文件上传插件。
我会喜欢的文件上传到之后开始的输入值已经更新。然而,互联网资源管理器似乎忽略Javascript菜单选择变化.
我如何可以实现这在IE?
例如:
var html = $('<div class="add_input">'+
'<input type="file" name="file"/></div>').change(submit);
$('#add_inputs').prepend(html);
解决方案
您可以只更换上面东西沿着这些路线
var html = $('<div class="add_input"><input type="file" name="file"/></div>');
$('#add_inputs').prepend(html);
$("div.add_input > input[name='file']").change(submit);
或
var html = $('<div class="add_input"><input id="filer" type="file" name="file"/></div>');
$('#add_inputs').prepend(html);
$("#filer").change(submit);
其他提示
当你创造元素从HTML在jQuery,返回处理引用的最件(s),所以你把 change
事件处理程序上的 <div>
, 不该 <input>
.
这个工作仍然在大多数浏览器,因为在 DOM Level2的活动 说明书, change
事件'泡'该文件提前通知其父母,当它改变的,所以一个事件处理程序 <div>
会得到通知的任何变化的任何其孩子 <input>
s.但是即具有自己的事件模型,在该模型中 变化不会泡泡.
一个选择:
($('<input type="file" name="file" />')
.change(submit)
.prependTo('#add_inputs')
.wrap('<div class="add_input"></div>')
);
不隶属于 StackOverflow