2011-07-27 27 views
0

我試圖在使用該解決方案在quirksmode.org排序文件上傳輸入不一致的問題,使用下面的JavaScript:假文件上傳不顯示文件名

$('.sidebar-uploadcv input[type=file]').attr('onchange','javascript:document.getElementById("fakeupload").value = this.value').addClass('file_input_hidden'); 

麻煩的是,這在Chrome中無法正常工作。它呈現並且用戶可以單擊以選擇文件,但文件名不會顯示在#fakeupload輸入中。

任何人都可以幫忙嗎?

+0

由於安全原因,Chrome不允許您使用JS訪問文件目錄。如果我沒有記錯的話,任何JS操作都會創建一個C:\ Fakepath \ file.jpg。 – Seth

+0

事情是 - 即使這不是放入上面的JavaScript應該(我認爲)發生的fakeupload輸入字段。 – melat0nin

回答

1

通過調用.change()而不是.attr('onchange',...)找到了解決方案。這種方法可以跨瀏覽器工作。

爲了擺脫Webkit等人的假路徑字符串,我還添加了var filename...這一行來去掉那部分文件名。

$('.input[type=file]').change(function() { 
    var filename = $(this).val().replace(/C:\\fakepath\\/i, ''); 
    $('#fakeupload').val(filename); 
});