我有这些动态的创建文件输入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>')
);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top