在单击表单上的提交按钮后添加加载程序(加载程序不断重复)
Adding a loader after clicking submit button on a form (loader keeps repeating)
我的目标是在点击后用图像加载器替换表单提交按钮,这样当上传的图像正在加载时,用户就不会只看到一个空白屏幕。我做到了这一点,但它并不理想。
我觉得好像我做得很糟糕,因为加载器的行为很奇怪,有时它只会显示一次,但有时它会重复,而background-repeat: no-repeat
没有效果。
$(document).ready(function() {
$("input[name='application-submit']").hover(function() {
$(this).toggleClass("btn-hover");
$("form").submit(function() {
$("input[name='application-submit']").after('<img src="img/loader.GIF" alt="Swole Inc Loader" class="loader">');
$("input[name='application-submit']").hide();
$("img.loader").css("position", "relative", "top", "0", "left", "0");
});
});
});
我在这里做错了什么,使我使用的CSS是无效的吗?我的方法过时了吗?有什么更有效的方法来做这件事?(我不想要完整的代码,我只需要在正确的方向上引导我做错了什么)。
您可以在这里看到一个实时示例。如果您上传了一张图片,然后点击提交(忽略其他字段),您将看到有问题的图片加载器
问题是每次点击你都在添加一个新图像,你也在添加多个提交处理程序
$(document).ready(function () {
var $btn = $("input[name='application-submit']").hover(function () {
$(this).toggleClass("btn-hover");
});
$("form").submit(function () {
var $img = $btn.next('.loader').show();
if (!$img.length) {
$img = $('<img src="img/loader.GIF" alt="Swole Inc Loader" class="loader">').css({
position: 'relative',
top: 0,
left: 0
}).insertAfter($btn);
}
$btn.hide();
});
});
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 页面加载之前的jQuery Ajax加载程序
- 永远不要停止gif预加载程序
- Dojo AMD加载程序执行定义具有空/缺失依赖项的回调
- 用于各个元素的Ajax加载程序
- 显示全屏Ajax加载程序的最佳方式
- 要求创建空模块作为依赖项加载程序
- 如何在发送ajax请求时显示进度加载程序
- 如何更改jquerymobile中默认的加载ajax加载程序gif
- 避免将lib依赖项与webpack+handlebas加载程序捆绑在一起
- 带有模块加载程序的Emscripten
- 图像预加载程序
- Angular 1.X,webpack和ngtemplate加载程序问题
- 动画加载程序gif未旋转
- 为 HTML5 游戏添加游戏加载程序
- 创建 UI 加载程序时的引导程序
- 单击链接后显示加载程序
- 纯javascript的进度图像加载程序仅当用户单击提交html表单时