我正在尝试将加载的GIF插入我的项目中。我将ASP.NET Core 3.0与Razor Pages一起使用,并且我了解到我必须使用一点Javascript或Ajax来做到这一点。我对所有这些都是新手,所以我不太了解如何实现此功能,但是已经尝试了一下。加载页面时,GIF立即存在,但是问题是我只希望在单击提交按钮时显示它。
这是我的Upload.cshtml的代码:
@page
@model CustomerPageTest.Pages.Assessment.UploadModel
@{
ViewData["Title"] = "Upload";
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="../Scripts/jquery-1.12.4.js"></script>
<script src="../Scripts/jquery-ui.js"></script>
<script>
$(document).ready(function () {
$('.loadingImage').hide();
$("#buttonSubmit").click(function (event) {
$('.loadingImage').show();
});
});
</script>
<div class="col-md-offset-2 justify-content-center">
<h1 style="color:yellowgreen">3) Import RVTools Spreadsheet (.xls or .xlsx)</h1>
</div>
<br />
<br />
<div class="col-md-offset-3">
<form enctype="multipart/form-data" method="post">
<dl>
<dd>
<input asp-for="@Model.FormFile" type="file" class="text-light">
<span asp-validation-for="@Model.FormFile"></span>
<input asp-for="@Model.CustomerId" type="hidden" />
<span asp-validation-for="@Model.CustomerId"></span>
<input asp-for="@Model.AssessmentId" type="hidden" />
<span asp-validation-for="@Model.AssessmentId"></span>
</dd>
<dd>
<img id="loadingImage" src="~/css/Images/ajax-loader.gif" alt="Loading ..." style="display: none;" />
</dd>
</dl>
<dl>
<dd>
<button id="buttonSubmit" asp-page-handler="Upload" class="btn btn-dark" type="submit">Upload File</button>
</dd>
</dl>
</form>
</div>
当我运行程序并且不单击“上传文件”时,这就是我得到的:
如何使该GIF仅在我点击“上传文件”时显示?当我单击“上传文件”时,程序进入OnPost()函数,因为它必须对给定的文件运行大型算法,并且我希望该程序运行时在其中具有GIF。
答案 0 :(得分:2)
您的jquery脚本以class loadingImage为目标,但是该元素将其作为id。改用$('#loadingImage')。