【发布时间】:2017-05-18 11:30:48
【问题描述】:
当用户单击提交按钮时,我想在我的页面上显示一个微调器 div 元素。我的代码中似乎存在错误,因为我在此处检查了多个答案和建议以解决类似问题,但似乎没有任何效果 - 显示点击控制台消息并且页面开始重新加载而不显示 div 元素。
HTML:
<form action="/uploader" id="upload_form" method="POST" enctype="multipart/form-data" runat="server">
...
<div class="form-group">
<input type = "submit" id="upload_button" class="btn btn-primary btn-lg" />
</div>
</form>
jquery:
$(document).ready(function(){
$('#upload_form').on('submit', function(e) {
e.preventDefault();
$('.sk-cube-grid').show();
console.log('Upload button was clicked');
this.submit();
});
});
我也试过没有成功:
$('#upload_button').on('click', function(e) {
console.log('Clicked on upload form');
$('.sk-cube-grid').show();
});
编辑:当我删除 this.submit();单击后会显示微调器,但未提交表单-因此 CSS 似乎没问题。此外,在重新加载页面之前上传需要几秒钟,所以我有时间在控制台上查看消息并验证没有显示微调器...
【问题讨论】:
-
很难说,因为您没有提供完整的代码,我看不到“sk-cube-grid”类的元素。您可以做的一个快速调试是在控制台中运行它: $('.sk-cube-grid').show();看看是否能达到预期的效果。另外请记住,您的表单现在会重新加载页面,因此您将立即被重定向,并且可能没有时间查看微调器
-
删除表单提交中的
this.submit()。它不是jquery submit的有效语法 -
在提交 from 时显示微调器是毫无意义的操作。因为提交表单总是重新加载页面或重定向页面并且微调器没有足够的时间显示。
-
@prasad :在阻止默认操作后,表单提交的正确语法是什么?当我删除 this.submit() 时,会显示微调器,但我还需要提交表单。
-
@IvonaTau
$(this).submit()是正确的表单。但是你在表单内申请没有任何条件提交。它有循环效果,一次又一次地提交表单。如果您之前有任何条件this.submit
标签: javascript jquery html