簡體   English   中英

jQuery change()的任何替代方法,用於檢測用戶在IE8中通過對話框選擇新文件的時間?

[英]Any alternative to jQuery change() to detect when user selects new file via dialog box in IE8?

在用戶選擇文件並關閉對話框后,我無法檢測輸入type =“file”何時更改其值。

$('.myInput').change(function(){
    alert($(this).val());
})

除了IE之外,jQuery代碼在所有瀏覽器中都能很好地工作。 由於某種原因,IE僅在輸入字段失去焦點后才檢測到更改。

有沒有辦法在對話框關閉后立即檢測到更改? 或者可能在對話框關閉后強制輸入字段失去焦點,以便IE可以檢測到它?

我很困惑。 謝謝你的幫助。

是一個已知的錯誤 ,作為jQuery 1.4.2版本的一部分得到解決,1.4.2得到了一個重要的事件模型重寫 ,這是固定的一部分,只是升級來解決問題:)

編輯 - 尼克是對的,它已在1.4.2中修復。 http://jsfiddle.net/7wR2L/

您可以檢測到點擊並跟蹤它的最后一個值。 就像是..

$('.myInput').click(function() {
   var $file = $(this);
   if( $file.val() != $file.data('lastVal') ) {
     // different
   }
   $file.data('lastVal', $file.val() );
});

Dan Heberden關於更新到1.4.2的評論有效。

但是,如果使用另一個元素來觸發文件文件選擇,則文件輸入元素不再注冊“更改”事件。

我為此創建的新問題有一個分叉你的小提琴來說明這種情況。 請參閱jQuery:如果文件選擇由文件輸入以外的元素觸發以獲取詳細信息, 則不會觸發文件輸入元素上的“更改”事件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM