首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Internet Explorer文件输入更改

Internet Explorer文件输入更改
EN

Stack Overflow用户
提问于 2009-11-23 08:46:35
回答 2查看 3.3K关注 0票数 1

我有这些动态创建的文件输入HTML元素,它们与jQuery-ajax文件上传插件一起使用。

我希望在输入值更新后开始上传文件。然而,Internet Explorer似乎忽略了Javascript onChange。

如何在IE中实现这一点?

示例:

代码语言:javascript
代码运行次数:0
运行
复制
var html = $('<div class="add_input">'+
        '<input type="file" name="file"/></div>').change(submit);

$('#add_inputs').prepend(html);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-23 08:52:06

您只需将上面的内容替换为以下内容

代码语言:javascript
代码运行次数:0
运行
复制
var html = $('<div class="add_input"><input type="file" name="file"/></div>');
$('#add_inputs').prepend(html);
$("div.add_input > input[name='file']").change(submit);

代码语言:javascript
代码运行次数:0
运行
复制
var html = $('<div class="add_input"><input id="filer" type="file" name="file"/></div>');
$('#add_inputs').prepend(html);
$("#filer").change(submit);
票数 4
EN

Stack Overflow用户

发布于 2009-11-23 09:57:01

在jQuery中从HTML语言创建元素时,返回的句柄引用最外层的元素,因此将change事件处理程序放在<div>上,而不是<input>上。

尽管如此,这在大多数浏览器中仍然有效,因为在DOM Level 2 Events规范中,当文档发生变化时,change事件会“冒泡”文档以通知其父级,因此<div>上的事件处理程序将得到有关其任何子<input>上的任何更改的通知。但是,IE有自己的事件模型,其中change does not bubble

另一种选择:

代码语言:javascript
代码运行次数:0
运行
复制
($('<input type="file" name="file" />')
    .change(submit)
    .prependTo('#add_inputs')
    .wrap('<div class="add_input"></div>')
);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1780611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档