2015-05-07 100 views
0

在我的Rails應用程序中,我在同一頁面上有多個文件輸入字段。我用下面的jQuery來顯示文件名給用戶一個文件時附:在使用jQuery重新顯示錶格之後顯示Carrierwave附件文件名

$(document).on('change', ':file', function() { 
    var input = $(this), 
     filename = input.val().replace(/^.*[\\\/]/g, ''); 
    $(".filename[data-input='" + this.id + "']").text(filename); 
}); 


<span class="filename" data-input="example-marketing-material-file"></span> 

當拋出一個驗證錯誤和頁面重新顯示形式,我得從我的緩存的隱藏字段獲取文件名作爲在Carrierwave docs提到,HTML輸出是這樣的:

<input id="example-marketing-material-file-cache" name="bid[example_marketing_material_cache]" type="hidden" value="1430984214-14326-1254/Banking_Details_Reader.pdf" /> 

後發生驗證錯誤,我怎麼會改變我目前的jQuery的通過我的隱藏文件中的字段值到我的名類呢?

回答

0

請參閱https://stackoverflow.com/a/30114820/2811283以正確回答此問題。使用了以下代碼。

$(document).on("page:load ready", function() { 
    $files=$(".cached-filename"); 
    // loop over selectors and update instance 
    $(".filename").text(function(idx, text) { 
     return $files.eq(idx).val().replace(/^.*[\\\/]/g, ''); 
    }) 
});