gpt4 book ai didi

javascript - Jquery:在 IE 上将事件更改为输入文件

转载 作者:IT王子 更新时间:2023-10-29 03:12:18 24 4
gpt4 key购买 nike

我有一个上传文件的表单,它应该在选择文件后触发提交。

在 FireFox/Chrome 上一切顺利,并在选择文件后提交表单,但我不能在 Internet Explorer 上执行此操作。

已尝试使用 click/propertychange 但没有任何反应。我已经尝试过的一些代码:

$("#attach").attr("onChange", "alert('I changed')");
$("#attach").live($.browser.msie? 'propertychange': 'change', function(e) { ... });

这个输入文件是动态创建的;因此,我使用 .live() 来绑定(bind)事件。

有什么建议吗?

最佳答案

我知道这已经晚了几个月,但我刚刚在 IE7 中遇到了完全相同的行为;在所有其他浏览器中,文件输入的更改事件发生在文件选择之后。在 IE7 中,它仅在您再次触发文件选择或模糊时发生。

这是我最终修复它的方法:

var $input = $('#your-file-input-element');

var someFunction = function()
{
// what you actually want to do
};

if ($.browser.msie)
{
// IE suspends timeouts until after the file dialog closes
$input.click(function(event)
{
setTimeout(function()
{
if($input.val().length > 0) {
someFunction();
}
}, 0);
});
}
else
{
// All other browsers behave
$input.change(someFunction);
}

从技术上讲,您可以/应该将 hack 条件过滤到 IE7,因为 IE8 在更改事件上表现正常,但它在暂停超时方面也具有与 IE7 相同的行为,而浏览器相关的 chrome 是可见的(我猜它认为它阻塞 I/O),因此它按原样工作。

关于javascript - Jquery:在 IE 上将事件更改为输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2389341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com