2011-04-27 63 views
0

HI大家好,即使在顯示警報後仍保持文件對話框打開

我有下面的代碼,我檢查所選文件的文件類型。
hiddenFileInputFile是文件輸入類型。
下面的代碼工作正常,但如果用戶沒有提供.csv文件,那麼它會顯示警報,這很好,但是我希望文件對話框保持打開狀態,這種情況沒有發生。

請指教。
也有什麼辦法可以將過濾器直接應用到文件對話框,只選擇使用jQuery/javascript的.csv文件?

Element.find('input.hiddenFileInputFile').change(function() 
{ 
      var filename = $(this).val(); 
      if (!/\.csv$/.test(filename)) { 
       alert('Please select a csv file'); 
       return false; 
      } 
}); 

謝謝。

回答

1

警報後,只需調用其click事件:

if (!/\.csv$/.test(filename)) { 
    alert('Please select a csv file'); 
    $(this).click(); 
    return false; 
} 

這會不會「保持開放」,這是不可能的,但重新打開它時,該文件是無效的。

0

不幸的是,出於安全原因,您不能在外部觸發文件輸入點擊事件。但是,如果要限制對客戶端的用戶,你可以嘗試:

<input type="file" accept="text/csv" /> 

這樣只會令該.csv類型在打開文件對話框文件可見。不過,我也會把控制權放在服務器端。如果不是正確的類型,您可以打開一個警告對話框並相應地設置文件輸入的樣式(例如紅色邊框),並讓用戶打開文件對話框,因爲您無法觸發該對話框。

jQuery的一些插件提供了一些方法,可以讓您對上傳過程有很多控制。

Jquery plugin 1, ​​

僅舉幾例。

希望它有幫助。

+0

接受沒有爲我工作。謝謝 – Amit 2011-04-27 11:16:15