IE 下 input 不響應 change 事件的處理

不少時候,咱們都須要經過 input 來上傳文件,經過 change 事件獲取用戶上傳的文件,而後作一些額外的處理,最後上傳到服務器。服務器

但是事情每每就是沒有那麼美好。是的,IE 下 input 在選擇文件後不觸發 change 事件。code

那怎麼辦呢?事件

其實解決辦法也很簡單,利用 IE 的一個特色就能夠:IE 在對話框關閉前都會掛起 timeout。input

因此咱們綁定 input 的 click 事件,而後開啓一個定時器去獲取文件就能夠了。就像這樣:io

if ($.browser.msie)
{
     $('#fileInput').click(function(event)
    {
        setTimeout(function()
        {
            if( $('#fileInput').val().length > 0) {
              doSomething()
            }
        }, 0);
    });
}
else
{
     $('#fileInput').change(doSomething);
}
相關文章
相關標籤/搜索