javascript - 如何在下一页开始加载之前激活 JavaScript?
问题描述
我想制作一个在有人提交 Django 表单时出现的加载屏幕。这是一些示例代码:
表格.py
class ExampleForm(forms.Form):
example_field = forms.CharField(
widget=forms.TextInput(attrs={'class': 'form-control'})
)
索引.html
<style>
.overlay {
display: none;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(255,255,255,0.8);
z-index: 5000;
text-align: center;
padding-top: 20%;
}
</style>
<form action="example_form">
{% for each in example_form %}
{{ each.label_tag }}
{{ each }}
{% endif %}
<button type="submit" class="btn btn-primary" name="action" value="submit">submit</button>
</form>
<script>
$(document).ready(function () {
function ShowLoading() {
$(".overlay").show();
}
$("button[type='submit']").on("click", ShowLoading)
})
</script>
当单击提交按钮和加载下一页之前,此代码成功显示加载屏幕。但是,当您没有在其单个必填字段中输入任何内容但仍然单击提交时,就会出现问题。发生的情况是会出现一个告诉用户输入输入的工具提示,但加载屏幕无论如何都会出现,即使它实际上并没有加载另一个页面。这是因为它通过单击激活,而不是下一页是否开始加载。
我想要的不是在单击按钮时激活 JavaScript,而是希望它在下一页加载时但在下一页实际开始出现之前激活。JavaScript 有没有办法感知这种事情?
解决方案
代替
$("button[type='submit']").on("click", ShowLoading)
和
$("form").on("submit",ShowLoading);
推荐阅读
- javascript - 从用户那里收集二进制数并在 JavaScript 中将其转换为十进制
- flutter - 无法在flutter webview中返回上一页
- amazon-web-services - 如何使用 AWS CLI 访问和复制 Cloudian S3 文件
- python - 名称“项目”未定义
- stripe-payments - 条纹测试卡,用于允许未捕获但未通过“真实”捕获的费用
- go - Golang - 创建一个与传递的相同类型的对象
- python-3.x - 为什么在使用 buildozer 调试后出现“命令失败”错误?
- r - 用另一个列表改变数据框列表
- haskell - 如何使用镜头“重新排列”Aeson.Object?
- dataframe - Julia 数据框直接访问行