簡體   English   中英

具有相同名稱的jQuery文件上傳不起作用

[英]jQuery file upload with the same name does not work

我們使用c#,js,jquery創建了一個單頁網站。 我有一個正常的上傳表單,可以調用c#控制器進行上傳。 上傳完成后,刷新相同的窗口並在所有文件列表中顯示新文件。

可能是用戶看到他在文件中有錯誤並重新上傳了文件。 如果頁面不相關,則無法上傳文件。 我的觸發器功能不再起作用。

如何在不手動刷新頁面的情況下使用相同的名稱兩次上傳文件?

我的上傳觸發功能

 // formUploadRisk-Formular open $("#uploadRiskPolicyFile").change(function () { if (confirm("Would you like to upload the file?")) { var riskId = $(managementRiskPdfMenu).data("riskId"); var control = document.getElementById("uploadRiskPolicyFile"); var files = control.files[0]; var success = UploadRiskPdf(riskId, 1, files); if (success) { LoadManagementPdfMenu(riskId); } return false; } }); 

我的上傳功能

 function UploadRiskPdf(riskId, documentTypeID, files) { var result = false; // Methode to save var fd = new FormData(); fd.append('file', files); var uploadURL = "documents/upload/risk/" + riskId + "/" + documentTypeID; var jqXHR = $.ajax({ xhr: function () { return $.ajaxSettings.xhr(); }, url: uploadURL, type: "POST", async: false, enctype: 'multipart/form-data', contentType: false, cache: false, processData: false, data: fd, success: function (response) { var node result = true; var d = data; }, error: function (data) { alert("Some error!") } }); return result; } 

和我的HTML將像這樣的附錄

 var documentRow = $.parseHTML('<div><span><a class="risikoPdf" href="documents/customer/' + value.DocumentID + '" target="_blank"><i style="margin-right:5px;" class="fa fa-file-pdf-o fa-2x"></i>' + value.UploadDate + '_' + value.ProgramCode + '</a></span><span class="document-edit-delete fa fa-trash fa-2x"></span></div>'); $("#" + layoutId).append(documentRow); 

和我的HTML

 <div id="uploadPdfDocumentPolicy" class="uploaderRisiko"> <div class="browser"> <label> <span>Policen</span> <input id="uploadRiskPolicyFile" class="fa fa-plus-circle fa-lg" type="file" name="FileUploadPolicy" title="Klicken, um eine weitere Rechnung hochzuladen" /> <i class="fa fa-plus-circle fa-lg"></i> </label> </div> </div> <div id="uploadPdfDocumentBill" class="uploaderRisiko"> <div class="browser"> <label> <span>Rechnungen</span> <input id="uploadRiskBillFile" class="fa fa-plus-circle fa-lg" type="file" name="FileUploadBill" title="Klicken, um eine weitere Rechnung hochzuladen" /> <i class="fa fa-plus-circle fa-lg"></i> </label> </div> </div> 

我解決了我的問題。

我做了一個檢查變量,檢查該值是否不為空。 成功后,我清除輸入字段的值。 因為,這是對JS更改功能的更改,它將再次進入該功能,這就是為什么我需要ckecker if語句。

  $("#uploadRiskPolicyFile").change(function () { var checker = $("input[name='FileUploadPolicy']").val(); if (checker != '') { if (confirm("Willst du das File hochladen?")) { var riskId = $(managementRiskPdfMenu).data("riskId"); var control = document.getElementById("uploadRiskPolicyFile"); var files = control.files[0]; var success = UploadRiskPdf(riskId, 1, files); if (success) { LoadManagementPdfMenu(riskId); $("input[name='FileUploadPolicy']").val(''); } } } }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM