2015-05-07 101 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, ''); 
    }) 
});