【发布时间】:2017-02-02 22:57:06
【问题描述】:
我正在尝试使用添加产品按钮来克隆我的文件上传。这是我的 HTML
<section class="transactionalFormRow">
<input type="file" name="receipt[]"id="receipt">
<label for="receipt"><span>UPLOAD SALES RECEIPT*</span></label>
</section>
<a href="#" id="addproduct">Add another Product</a>
我有 jQuery 来定位文件名并显示在标签内。它工作正常,在克隆产品上,它将文本更新回“上传销售收据”。但是,当我选择一个新文件时,它总是会更新原始文件输入的文件名(#receipt)。
getReceiptInfo($('#receipt'));
$("#addproduct").click(function(e){
e.preventDefault();
var newelement = $(this).prev(".transactionalFormRow").clone();
var newID = Math.round(new Date().getTime() + (Math.random() * 100));
var newfileinput = newelement.find(".file-input").attr("id", "receipt-"+newID);
newfileinput.siblings("label").find("span").text("UPLOAD SALES RECEIPT*");
getReceiptInfo($("#"+newfileinput.attr('id')));
$(this).before(newelement);
})
function getReceiptInfo(element){
var label = element.siblings();
element.change(function(e){
var fileName = '';
fileName = e.target.value.split( '\\' ).pop();
if( fileName )
label.find( 'span' ).html(fileName);
else
label.innerHTML = labelVal;
})
}
【问题讨论】:
-
您的克隆正在复制 ID。这是一个禁忌
-
但我已将输入 id 更改为新的。