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

如何通过hx-on在Enter键keyup事件后调用JavaScript函数?

解决HTMX中仅在Enter键keyup时触发函数的问题

正确的语法写法

你原来的事件过滤语法存在问题,HTMX的事件过滤需要正确引用事件对象属性,以下是两种有效写法:

方式1:明确使用event.key判断

<input 
    type="text" 
    name="description" 
    placeholder="task" 
    id="field-description"
    hx-on:keyup[event.key === 'Enter']="alert('foo')"
>

方式2:使用属性简写(HTMX支持直接引用事件属性)

如果想简化代码,HTMX允许直接用事件对象的属性名,正确写法如下:

<input 
    type="text" 
    name="description" 
    placeholder="task" 
    id="field-description"
    hx-on:keyup[key === 'Enter']="alert('foo')"
>

原写法失效原因

你之前的hx-on:keyup[key=='Enter']写法,一是单等号==的松散匹配可能存在兼容性问题,换成严格相等===更稳妥;二是部分环境下需要明确指定event.key才能正确获取按键值。

备选方案:使用keydown事件(更稳定)

如果keyup事件仍有异常,可以尝试keydown事件(Enter键的keydown触发逻辑通常更稳定),还能顺便阻止默认的表单提交行为:

<input 
    type="text" 
    name="description" 
    placeholder="task" 
    id="field-description"
    hx-on:keydown[event.key === 'Enter']="alert('foo'); event.preventDefault();"
>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 12:48:11