如何仅在经过一定时间后才显示消息 jquery - 阻止表单提交

2024-01-30

我有一个结账页面,其中有一些 ajax 调用,例如,当用户更改送货国家/地区时,这些调用会更新隐藏字段。

大多数时候,这工作得很好,页面有时间在用户单击提交之前更新隐藏字段。但有时,由于连接速度慢或其他原因,ajax 无法及时返回隐藏字段,并且允许用户提交不完整的表单。

阅读此处的另一个问题后,我使用 ajaxStart 和 ajaxComplete 禁用并重新启用表单的提交按钮。

我还想在按钮旁边显示“请稍候”消息,以便让用户了解正在发生的情况。

这一切都工作正常,但在 99% 的情况下,此消息会快速闪烁并消失,速度太快,无法阅读,而且看起来很分散注意力/有问题。

我想做的只是在 ajax 调用需要很长时间才能响应(表明我们的连接速度很慢)时才显示此消息 - 比如 250 毫秒?

我以前没有在 jquery 中使用过计时器,所以这希望能帮助我掌握所涉及的概念。

这是到目前为止的功能

// if we're waiting for any ajax to complete we need to disable the submit
$(document).ajaxStart(function() {
  $(".ajaxbutton").attr("disabled", "disabled");
  // if it's taken longer than 250ms (say) display waiting message
      $('#processingAlert').html(' ...please wait one moment');
      $('#processingAlert').show();
      // end the if here
})
$(document).ajaxComplete(function() {
  $(".ajaxbutton").removeAttr("disabled");
    $('#processingAlert').hide();
});

我知道这是一个非常基本的问题,我可以轻松地用 PHP 完成它,但我是 jquery 的新手,所以我需要一些初学者的帮助!

Thanks!


setTimeout 是你的朋友。

尽管我还没有测试过它的拼写错误等,但类似于下面的内容应该可以工作。

// if we're waiting for any ajax to complete we need to disable the submit
$(document).ajaxStart(function() {
  $(".ajaxbutton").attr("disabled", "disabled");
  // if it's taken longer than 250ms (say) display waiting message
  timer = setTimeout(function() {
    $('#processingAlert').html(' ...please wait one moment');
    $('#processingAlert').show();
  }, 250);
})
$(document).ajaxComplete(function() {
  $(".ajaxbutton").removeAttr("disabled");
    $('#processingAlert').hide();
    // cancel showing the message when the ajax call completes.
    clearTimeout(timer);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅在经过一定时间后才显示消息 jquery - 阻止表单提交 的相关文章

  • 使用JQuery检查元素是否有边框?

    所以我正在玩 el css 尝试确定元素是否有边框 我用 css border style solid 设置边框 这是可行的 但实际上它设置了 4 种单独的样式 border right style border left style bo
  • 使用 javascript 将 html 文本渲染为位图,无需服务器端代码

    我需要使用 javascript 代码来转换 html 中的文章 帖子 以便最终用户以位图的形式查看 有没有办法在没有服务器端代码的情况下做到这一点 example p testing text here p 您可以使用例如html2can
  • Ajax JSON 数据和灯箱冲突

    我有一个带有灯箱插件的画廊设置光廊 http sachinchoolur github io lightGallery docs 该画廊与静态 HTML 完美配合 当我动态抓取 API 数据并尝试让灯箱处理这些项目时 问题就出现了 我似乎无
  • jQuery 检索和设置 html select 元素的选定选项值

    我正在尝试使用 jQuery 检索并设置选择元素 下拉列表 的选定值 为了检索我已经尝试过 myId find selected val 也 myId val 但两者都返回未定义 任何对此问题的见解将不胜感激 要获取 设置选择元素的实际 s
  • 一个接一个地淡入div

    大家好 我很擅长 HTML 和 CSS 但才刚刚开始接触 jQuery 的皮毛 我希望让 3 个 div 在页面加载时逐渐淡入 到目前为止我有这个 我听说使用 css 将显示设置为 none 对于任何使用非 JavaScript 浏览器的人
  • Jquery 两个字段的时间差(以小时为单位)

    我的表单中有两个字段 用户可以在其中选择输入时间 start time end time 我想在更改这些字段时重新计算另一个字段的值 我想做的是获取两次之间的小时数 例如 如果我的开始时间为 5 30 结束时间为 7 50 我想将结果 2
  • 支持换行的 JQuery 工具提示

    我正在寻找一个轻量级的 jquery 插件 用于在用户将鼠标悬停在元素上时显示工具提示 我希望插件从标题属性中获取内容 而且我可以创建新行也很重要 任何帮助表示赞赏 在 jQuery 1 9 jquery jquery ui 和标准 too
  • 检测 WebGL 支持的正确方法?

    我正在尝试跨多个浏览器检测 WebGL 支持 并且遇到了以下情况 当前版本的 Firefox 似乎使用以下检查来报告积极支持 即使访问者的视频卡被列入黑名单和 或 WebGL 被禁用 if window WebGLRenderingCont
  • 无法正确显示行

    我应该在这个问题的开头说我完全没有 html css javascript 背景 所以请对我宽容点 如果我使用了错误的术语或者问了一个愚蠢的问题 没有提供足够的信息 请抱歉 我正在尝试让一个可扩展的表工作 通过阅读论坛线程 教程 将 nex
  • 是否可以将多个事件处理程序绑定到 JqGrid 事件而不覆盖以前的事件处理程序?

    例如 我在每次页面加载时调用默认设置 并将函数绑定到 loadComplete 来为网格执行一些基本格式化 在某些页面上 我想同时执行其他逻辑 但如果我在网格定义中设置 loadComplete 它将覆盖默认值中设置的函数 有没有办法绑定多
  • JSON 数据中的 jQGrid celledit 显示 URL 未设置警报

    我需要从服务器加载 JSON 并且希望用户能够单击并编辑该值 但是当他们编辑时 它不应该调用服务器 我的意思是我不会立即更新 所以我不想编辑网址 所以我尝试了 ClientArray 但它仍然显示 Url is not set 警报框 但是
  • 如何找到div的第一个直接子元素

    这应该很容易 但我做不到 我有一个 id 为 LeftScrollableDiv 的 div 元素 我试图找到它下面的第一个子元素 LeftScrollableDiv first child div table table div 但结果为
  • 自动完成仅显示消息并且结果可用,使用向上和向下箭头键进行导航。而是显示列表

    我的问题很清楚 我正在使用 jquery 自动完成 我不知道为什么它只向我显示消息 9 results are available use up and down arrow keys to navigate 没有向我显示结果列表 这是我的
  • 如何删除除任何特定 id 之外的元素

    假设有一个父 id 其中包含许多元素 我想删除除一个元素之外的所有元素 ex parent id children not id n remove
  • 在特定页面上执行 javascript 的正确“Rails”方式

    我试图在特定页面上运行 javascript 而我唯一的解决方案似乎是反模式 我有controller js内部生成的assets javascripts 我在用着gem jquery turbolinks 我的代码类似于以下内容 docu
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • PHP 数组通过 JSON 转为 jquery 数组

    我有点困惑为什么以下不起作用 get php
  • 编辑第一个选项名称

    我有以下我无法访问的代码 我想要做的是将一些文本添加到现在为空的第一个选项中 诸如 选择地址 之类的文本
  • 使用单击事件调用“trigger”方法时的复选框值

    如何在点击事件中获取正确的当前值以通过触发器调用 Html
  • 覆盖 jQuery 验证 MVC4 中的默认设置

    要覆盖查询验证插件 请在文件 http docs jquery com Plugins Validation validate toptions 推荐的方式是 selector validate invalidHandler functio

随机推荐

  • 引起原因:java.sql.SQLException:不支持 JDBC4 Connection.isValid() 方法

    我的 play framework 项目在本地运行良好 但是当我尝试将其部署到 heroku 中时 出现以下错误 2015 07 05T06 24 10 456657 00 00 app web 1 at com google inject
  • 默认样式表、用户样式表和作者样式表之间有什么区别?

    In CSS http en wikipedia org wiki Cascading Style Sheets 有什么区别default user and author样式表 默认样式表由浏览器供应商提供 用户样式表由浏览器的用户提供 作
  • 将数据从 SQL Server 加载到 Excel 的最快方法

    我在 SQL Server 上有一个相对较大的表 大约 300 000 行 该数据用作数据池来验证用户在 Excel 电子表格中执行的操作 确保用户始终使用最新数据的一种方法是设置 VBA 以便在电子表格打开时自动从 SQL Server
  • .NET 可移植类库和 UDP 支持

    我正在为 Philips Hue Lights 编写一个 C 库 我正在尝试在 NET 可移植集中编写基本 API 包装器 这样我就可以在 Windows 8 RT WP 等各种平台上重复使用该库 API 本身完全通过 HTTP 使用 RE
  • Travis CI/Pro:CIDR/IP 范围?

    我们正在使用 Travis Pro 并对 Redshift 进行了一些测试 我们可以在 Redshift 中为其创建安全规则吗 Travis VM 是否有 CIDR IP 范围 显然我们不会为任何传入 IP 打开 Redshift 这在过去
  • 如何在 Rails 3 中使用 Ransack 范围?

    在我的小部件模型中 我有以下内容 scope accessible to lambda user if user has role admin self all else roles user roles role ids roles ea
  • 如何中断BufferedReader readLine

    我正在尝试在多个线程中逐行读取套接字的输入 我怎样才能打断readLine 这样我就可以优雅地停止它正在阻塞的线程 编辑 赏金 可以在不关闭套接字的情况下完成吗 不关闭套接字 困难的问题不是BufferedReader readLine 但
  • iOS / C:检测音素的算法

    我正在寻找一种算法来确定实时音频输入是否与 144 个给定 且完全不同的 音素对之一匹配 最好是完成这项工作的最低级别 我正在为 iPhone iPad 开发激进 实验性音乐培训软件 我的音乐系统包含 12 个辅音音素和 12 个元音音素
  • ipython笔记本终端不可用[重复]

    这个问题在这里已经有答案了 我安装了 anaconda 我得到了这个 蟒蛇2 7 9 我在 Windows 8 上运行 ipython 笔记本 但终端选项对我不可用 我该如何激活它 请 Windows 不支持 tty 终端 并且 termi
  • 文件上传过程中 Firefox 中的 mozFullPath 是否存在安全风险?

    我正在开发一个小照片应用程序 用户选择一个本地文件并将其推送到画布中window URL createObjectURL file 非常基本的东西 在测试过程中 我短暂地将文件数组的内容转储到控制台 只是为了确保我得到了我想要的东西 我在
  • EclipseLink:对 MappedSuperclass 的查询失败

    我的应用程序是一家销售鱼类 水族馆等的商店 我想根据销售数量获取所有商品中排名前 10 的商品列表 我使用以下课程 MappedSuperclass NamedQueries NamedQuery name getTopItems quer
  • iOS 随机数生成器新视图

    我需要一些有关应用程序的帮助 我需要为 0 到 15 之间的整数创建一个随机数生成器 然后根据创建的数字 将其推送到具有相应数字的视图 这就是我想要的工作方式 按下按钮 gt 随机数生成器给出 0 到 15 之间的数字 gt 视图推送到已分
  • 如何从 JavaScript 手动触发元素的 hx-get 事件

    我在用htmx https htmx org 向我的页面添加一些 AJAX 调用 我有一个cart count定义为在页面加载后 1 秒检索购物车中的商品数量的元素 span span 我也有一个add to cart按钮 在它自己的东西之
  • stderr:致命:找不到远程引用 $GERRIT_REFSPEC

    在有人枪杀我之前 我已经查看了所有有此错误的消息 但它们似乎是由不同的问题表现出来的 我无法获得任何实质性信息 以下是我在 git 轮询日志中遇到的错误 我对错误 1 没有任何线索 请提供输入 为此 我在其他问题上读到 当存在 gerrit
  • 类型错误:无法读取构建上未定义的属性(读取“调用”),但不能读取开发上的未定义属性

    我正在运行一个vite js安装了 web3 的应用程序 当我在开发模式下运行应用程序时 一切正常 但当我在生产模式 构建 下运行它时 它会失败并显示 TypeError Cannot read properties of undefine
  • 何时创建类与设置布尔标志?

    我有一个有趣的问题要提出 什么时候应该创建模型类 对象而不是为数据库中存储的数据设置布尔标志 例如 假设我有一个 Person 类 其中包含 President Guard 和 PartTime 的布尔标志 根据标志的值 此类 模型的处理方
  • 为什么我使用 pandas 读取 csv 文件的对象是 TextFileReader 对象

    我使用 pandas 读取 csv 文件 data raw pd read csv filename chunksize chunksize print data raw id 然后 它报告TypeError Traceback most
  • 在 Java 8 中创建嵌套父子列表

    我是 Java 8 的新手 需要解决以下问题 我有两个课程如下 class Person String name int age List
  • 输出端口“tcp_inet”上的值错误

    我正在使用 Phoenix 框架 它在下面运行 Cowboy 我偶尔会在日志中看到以下一对错误 Bad value on output port tcp inet GenServer PID lt 0 8423 1 gt terminati
  • 如何仅在经过一定时间后才显示消息 jquery - 阻止表单提交

    我有一个结账页面 其中有一些 ajax 调用 例如 当用户更改送货国家 地区时 这些调用会更新隐藏字段 大多数时候 这工作得很好 页面有时间在用户单击提交之前更新隐藏字段 但有时 由于连接速度慢或其他原因 ajax 无法及时返回隐藏字段 并