我们用c#,js,jquery创建了一个寻呼机网站。我有一个正常的上传表单,用于上传c#控制器。是否刷新了相同的上载窗口,并在所有文件列表中显示新文件。
可能是用户看到他在文件中有错误并重新上传文件。如果页面未关联,则无法上载文件。我的triger功能不再起作用了。
如何在不刷新页面的情况下,使用完全相同的名称上传文件两次?
我的上传触发功能
// 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>
答案 0 :(得分:0)
我解决了我的问题。
我制作了一个检查器变量,用于检查值是否为空。在succsess之后我清除了输入字段的值。因为,这是对JS更改功能的更改,它将再次进入此功能,这就是为什么我需要ckecker if statment。
$("#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('');
}
}
}
});
&#13;