0
如何使用自定義上傳文件?自定義文件輸入
<%= f.file_field :image, class: 'inputfile' %>
<label for="image">Choose an image</label>
我希望將「選擇圖像」與「選擇文件」
如何使用自定義上傳文件?自定義文件輸入
<%= f.file_field :image, class: 'inputfile' %>
<label for="image">Choose an image</label>
我希望將「選擇圖像」與「選擇文件」
你的JavaScript缺少邏輯來獲得所選擇的文件名作爲教程:
var fileName = e.target.value.split('\\').pop();
所以您的JavaScript將更新爲:
input.addEventListener('change', function(e) {
var inspiration_image = e.target.value.split('\\').pop();
if(inspiration_image) {
label.querySelector('span').innerHTML = inspiration_image;
} else {
label.innerHTML = labelVal;
}
});
更新完整的cod e
<%= file_field_tag :image, class: 'inputfile' %>
<label for="inspiration_image">Choose a file</label>
<script>
var inputs = document.querySelectorAll('.inputfile');
Array.prototype.forEach.call(inputs, function(input) {
var label = input.nextElementSibling,
labelVal = label.innerHTML;
input.addEventListener('change', function(e) {
var fileName = '';
if(this.files && this.files.length > 1) {
fileName = (this.getAttribute('data-multiple-caption') || '').replace('{count}', this.files.length);
} else {
fileName = e.target.value.split('\\').pop();
}
if(fileName) {
label.querySelector('span').innerHTML = fileName;
} else {
label.innerHTML = labelVal;
}
});
});
</script>
對不起,Hieu沒有工作。當我替換教程'file'和'files'時,你認爲我把'inspiration_image'放在了正確的位置上?文件輸入的完整html:'選擇一個文件' –
我是不確定,讓我們更新您對當前問題以及預期結果有何疑問? –
當前問題與以前相同,即選擇文件後,「選擇圖像」文本沒有更改爲所選文件的名稱,這是預期結果。對不起,idk如果澄清是有幫助的。 –