0

0

使用 jQuery 实现可复用的按钮加载状态功能

聖光之護

聖光之護

发布时间:2025-10-12 09:42:15

|

698人浏览过

|

来源于php中文网

原创

使用 jQuery 实现可复用的按钮加载状态功能

本教程将指导您如何使用 jQuery 和 Font Awesome 创建一个可复用的 JavaScript 函数,以在表单提交时为按钮显示加载动画并禁用按钮,从而提升用户体验和防止重复提交。通过此方法,您可以轻松地将加载状态功能应用于各种表单按钮,实现一致且专业的交互效果。

在网页开发中,当用户提交表单或执行耗时操作时,提供即时反馈至关重要。显示加载动画并禁用相关按钮可以有效防止用户重复提交,同时告知用户系统正在处理请求,从而显著提升用户体验。本文将详细介绍如何利用 jquery 和 font awesome 实现一个可复用的按钮加载状态功能。

1. 准备工作:引入必要的库和HTML结构

首先,确保您的页面中已引入 jQuery 库和 Font Awesome 图标库,它们是实现此功能的基础。接着,为您的提交按钮添加一个 Font Awesome 加载图标,并默认将其隐藏。

HTML 结构示例:




关键点说明:

  • :这是一个 Font Awesome 的刷新图标,fa-spin 类使其旋转,hide 类则用于初始隐藏。
  • btn-sabt:这是一个自定义类,用于 jQuery 选择器定位按钮。

2. 定义 CSS 样式

为了控制加载图标的显示与隐藏,我们需要一个简单的 CSS 类来切换 display 属性。

CSS 样式示例:

.hide {
  display: none !important; /* 使用 !important 确保覆盖其他样式 */
}

3. 创建可复用的 JavaScript 加载器函数

核心功能是一个名为 toggleLoader 的 JavaScript 函数,它负责根据传入的参数来显示或隐藏加载图标,并禁用或启用按钮。

JavaScript 代码示例:

永利在线企业网站管理系统(CMS)1.0 Build 20100612
永利在线企业网站管理系统(CMS)1.0 Build 20100612

修正说明:1,实现真正的软件开源。2,安装界面的美化3,真正实现栏目的递归无限极分类。4,后台添加幻灯片图片的管理,包括添加,修改,删除等。5,修正添加新闻的报错信息6,修正网站参数的logo上传问题7,修正产品图片的栏目无限极分类8,修正投票系统的只能单选问题9,添加生成静态页功能10,添加缓存功能特点和优势1. 基于B/S架构,通过本地电脑、局域网、互联网皆可使用,使得企业的管理与业务不受地域

下载
/**
 * 切换按钮的加载状态。
 * @param {boolean} show - 如果为 true,显示加载器并禁用按钮;如果为 false,隐藏加载器并启用按钮。
 */
const toggleLoader = show => {
  // 假设所有需要控制加载状态的按钮都带有 '.btn-sabt' 类
  $('.btn-sabt')
    // .toggleClass('submit-btn', show) // 如果需要根据状态切换其他类,可以取消注释
    .prop('disabled', show) // 禁用或启用按钮
    .find('i').toggleClass('hide', !show); // 切换加载图标的显示/隐藏
};

函数解析:

  • toggleLoader(show) 接收一个布尔值 show。
  • $('.btn-sabt'):选择所有带有 btn-sabt 类的按钮。
  • .prop('disabled', show):当 show 为 true 时,设置 disabled 属性为 true(禁用按钮);当 show 为 false 时,设置 disabled 为 false(启用按钮)。
  • .find('i').toggleClass('hide', !show):找到按钮内部的 标签(即加载图标),并根据 !show 的值来切换 hide 类。当 show 为 true 时,!show 为 false,移除 hide 类(显示图标);当 show 为 false 时,!show 为 true,添加 hide 类(隐藏图标)。

4. 将加载器集成到表单提交事件中

现在,我们将 toggleLoader 函数集成到表单的提交事件中。

JavaScript 代码示例:

$(function() {
  $('#MobileUserForm').on('submit', (event) => {
    event.preventDefault(); // 阻止表单的默认提交行为

    toggleLoader(true);  // 显示加载器并禁用按钮

    // 在此处执行您的异步任务,例如 AJAX 请求
    // 示例:模拟一个异步操作,实际应用中替换为您的 AJAX 调用
    setTimeout(() => {
      toggleLoader(false); // 任务完成后,隐藏加载器并启用按钮
      // 例如,可以在这里处理 AJAX 响应,如显示成功消息或错误信息
    }, 3000); // 模拟3秒延迟
  });
});

集成步骤说明:

  1. $(function() { ... });:确保 DOM 完全加载后再执行 JavaScript 代码。
  2. $('#MobileUserForm').on('submit', (event) => { ... });:监听 ID 为 MobileUserForm 的表单的提交事件。
  3. event.preventDefault();:这是非常重要的一步,它阻止了浏览器默认的表单提交行为(如页面刷新),以便我们能通过 JavaScript 控制提交过程。
  4. toggleLoader(true);:在异步任务开始前调用,显示加载动画并禁用按钮。
  5. setTimeout(() => { toggleLoader(false); }, 3000);:这是一个模拟异步任务的示例。在实际应用中,您应该将 toggleLoader(false); 放置在您的 AJAX 请求的 success、error 或 complete 回调函数中,确保在任务真正结束时才移除加载状态。

5. 注意事项与最佳实践

  • 异步操作的正确处理: 确保 toggleLoader(false) 在实际的异步操作(如 AJAX 请求)成功或失败后才被调用。如果您的 AJAX 请求是使用 $.ajax()、fetch 或 axios 等库,请将其放在 done()、fail() 或 finally() 回调中。
  • 用户体验: 除了加载动画,还可以考虑在加载期间添加一个半透明的遮罩层,以防止用户与页面其他部分进行不必要的交互。
  • 可复用性扩展: 当前 toggleLoader 函数硬编码了 .btn-sabt 选择器。为了更强的复用性,您可以修改函数,使其接受一个按钮元素或选择器作为参数:
    const toggleLoaderGeneric = (buttonSelector, show) => {
      $(buttonSelector)
        .prop('disabled', show)
        .find('i').toggleClass('hide', !show);
    };
    // 使用示例:
    // toggleLoaderGeneric('#MobileUserForm .btn-sabt', true);
    // toggleLoaderGeneric('#AnotherForm button[type="submit"]', false);
  • 错误处理: 在异步请求失败时,不仅要隐藏加载器,还应该向用户显示适当的错误消息。
  • 无障碍性(Accessibility): 对于屏幕阅读器用户,可以考虑在按钮禁用时添加 aria-busy="true" 或 aria-live="assertive" 等 ARIA 属性,提供更友好的体验。

总结

通过上述步骤,我们成功创建了一个简洁、可复用且专业的按钮加载状态功能。这不仅提升了用户在表单提交时的体验,也有效避免了因重复点击导致的潜在问题。通过灵活运用 jQuery 和 Font Awesome,您可以轻松地将此模式应用于您网站的各种交互场景中。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

151

2023.09.12

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

312

2023.10.13

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

396

2023.11.10

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

504

2023.12.04

jquery实现分页方法
jquery实现分页方法

在jQuery中实现分页可以使用插件或者自定义实现。想了解更多jquery分页的相关内容,可以阅读本专题下面的文章。

187

2023.12.06

jquery中隐藏元素是什么
jquery中隐藏元素是什么

jquery中隐藏元素是非常重要的一个概念,在使用jquery隐藏元素之前,需要先了解css样式中关于元素隐藏的属性,比如display、visibility、opacity等属性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

120

2024.02.23

jquery中什么是高亮显示
jquery中什么是高亮显示

jquery中高亮显示是指对页面搜索关键词时进行高亮显示,其实现办法:1、先获取要高亮显示的行,获取搜索的内容,再遍历整行内容,最后添加高亮颜色;2、使用“jquery highlight”高亮插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

176

2024.02.23

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

40

2026.01.13

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

54

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

CSS教程
CSS教程

共754课时 | 25.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号