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

如何用htmx的hx-push-url将表单search输入值推送到URL?

用原生htmx实现搜索框值推送到URL(无需Hyperscript)

原生htmx完全可以实现这个需求,不需要依赖Hyperscript,核心是利用它的表单变量替换功能,直接在hx-push-url中引用输入框的值。

基础提交版代码示例

<form hx-get="/search" hx-target="#results" hx-push-url="/?q={q}">
  <input type="text" name="q" id="search-input" placeholder="输入搜索关键词">
  <button type="submit">搜索</button>
</form>
<div id="results"></div>

关键说明:

  • hx-push-url中的{q}是占位符,htmx会自动替换为表单里name="q"的输入框的实际值
  • 使用hx-get方法配合URL参数更合理,符合GET请求的语义
  • 提交表单时,浏览器地址栏会自动更新为/?q=你的搜索内容,同时该记录会被加入历史栈

实时输入推送版(无需点击提交)

如果想要输入时实时更新URL,只需调整触发规则:

<form hx-get="/search" hx-target="#results" hx-push-url="/?q={q}" 
      hx-trigger="keyup changed delay:500ms from:#search-input">
  <input type="text" name="q" id="search-input" placeholder="输入搜索关键词">
</form>
<div id="results"></div>

关键说明:

  • hx-trigger指定触发源为输入框,监听keyup和changed事件
  • delay:500ms用于防抖,避免每次按键都触发请求和URL更新
  • 输入过程中,地址栏会随内容实时变化,同时触发搜索请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:29:55