cme*_*ros 36 javascript jquery events internet-explorer
我已经四处寻找了,找不到解决方案:我有一个表单来上传文件,它应该在文件选择后触发提交.
在FF/Chrome上它会变形,并在文件选择后提交表单,但我不能在ie上执行此操作.
已经尝试过click/propertychange但没有任何反应.我已经尝试了一些代码:
.live()
.live()
我尝试过任何消化措施吗?
Edit1:我认为有一个重要的信息,这个输入文件是动态创建的,因为我使用.live()来绑定事件
iss*_*eng 41
我知道这已经晚了几个月,但我在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);
}
Run Code Online (Sandbox Code Playgroud)
从技术上讲,你可以/应该将hack条件过滤到IE7,因为IE8在更改事件上表现正常,但是在挂起超时时它也具有与IE7相同的行为,而浏览器相关的chrome是可见的(我猜它认为它阻止我/ O),所以它按原样工作.
dji*_*i33 11
这真的很晚了,但是我遇到了同样的问题,我通过使用<label>带有针对Firefox的轻微解决方案的样式标签解决了这个问题.
http://jsfiddle.net/djibouti33/uP7A9/
目标:
浏览器:
初始解决方案:
问题:
解决方案解决方案:
希望这可以帮助!查看jsfiddle,了解用于完成所有工作的html/js/css的详细信息.
Nic*_*ver 10
格式如下:
$("#attach").change(function() {
alert('I Changed');
});
Run Code Online (Sandbox Code Playgroud)
更新:在回答了之前的另一个问题之后,我们意识到这是作为jQuery 1.4.2事件重写的一部分修复的,只是更新到最新版本以解决IE中的change事件问题<input type="file" />.
| 归档时间: |
|
| 查看次数: |
64856 次 |
| 最近记录: |