You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用HTMX sync实现提交等待输入验证完成?

解决HTMX中提交请求等待验证请求完成的问题

你当前的hx-sync配置方向搞反了,应该给提交按钮添加同步规则,让它等待输入框的验证请求完成后再执行。

修改后的代码示例:

<script src="https://unpkg.com/htmx.org@1.8.4/dist/htmx.min.js"></script>

<div id="table-section">
  <input 
    id="title" 
    name="title" 
    type="text" 
    hx-get="https://httpbin.org/delay/5" 
    hx-trigger="change"
  >
</div>

<br>

<div id="filter-section">
  <button
    id="submit-button"
    hx-include="[name='title']"
    hx-post="https://httpbin.org/post" 
    hx-trigger="click"
    type="submit"
    hx-sync="#title:queue last"
  >
    Submit
  </button>
</div>

关键说明:

  • 给提交按钮设置hx-sync="#title:queue last",含义是:当#title元素有未完成的HTMX请求时,将当前提交请求加入队列,等待前者完成后再执行。
  • queue last表示如果用户快速多次点击提交,只会保留最后一次请求,避免重复提交(若需求是保留第一次请求,可替换为queue first)。

进阶控制(可选):

如果需要在验证失败时阻止提交,可以在验证请求的响应中添加HX-Stop: true响应头,或者通过监听htmx:afterRequest事件判断验证结果,动态控制提交按钮的可用性。

内容的提问来源于stack exchange,提问作者NFern

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 10:25:22