enterkeyhint仅是软键盘按钮文字建议,非强制;iOS Safari 15.4前不支持,对"send"基本无效,仅"search"和"done"较稳定;PC模拟器无效果,须真机测试;不改变表单默认提交行为。

它不能强制改写软键盘按钮文字,只是一条建议;设了没反应,大概率不是你写错了,而是浏览器、系统或输入法没采纳。
enterkeyhint="send"为什么在iOS上总显示“搜索”
iOS Safari 直到 15.4 才开始支持 enterkeyhint,且对 "send" 值基本无视——即使写了,也常 fallback 到 "search" 或 "go"。真正稳定生效的只有 "search"(配合 type="search")和 "done"(配合 type="text" 或 type="email")。"send" 在 Android Chrome、Samsung Internet 和企业微信 WebView 中较常见,但在 iOS 上几乎无效。
- 别在 iOS 环境下把功能逻辑绑在
enterkeyhint="send"上,它不触发任何事件 -
type="textarea"在 iOS 上对enterkeyhint支持极差,单行聊天输入优先用<input type="text"> - 微信 X5 内核会降级处理,哪怕写了
"send",也可能按type推断出“搜索”
哪些值真正有用,怎么配才不容易失效
合法值只有七个:enter、done、go、next、previous、search、send,大小写敏感,传中文如 "发送" 会被静默忽略。
-
"search"是兼容性最强的值,<input type="search" enterkeyhint="search">在 iOS/Android 几乎必出“搜索”图标 -
"done"在表单末尾字段较易生效,比如密码输入框,iOS 键盘倾向显示“完成” -
"go"对type="url"效果明显,Android 多数键盘显示“前往”,但 iOS 仍可能 fallback -
"next"和"previous"不自动跳焦点,只是改按键文案;真要切换,还得靠tabindex或 JS.focus()
为什么PC调试时完全看不到效果
enterkeyhint 只对虚拟键盘生效,物理键盘(包括 Chrome DevTools 的设备模拟器)完全不响应。你在桌面 Chrome 里切到 iPhone 模式,看到的仍是↵符号——这不是 bug,是设计如此。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
立即学习“前端免费学习笔记(深入)”;
- 真机测试前,别信模拟器表现
- 部分国产安卓键盘(华为、小米、搜狗)根本不实现该属性,不是你代码问题
- Firefox 全版本都不支持,Safari 15.4 之前也基本当没看见
- Vue/React 中动态绑定要小心:框架可能过滤未知属性,建议用
setAttribute('enterkeyhint', 'search')强制写入
想让用户明确知道该按什么,还能做什么
纯前端无法 100% 控制软键盘按钮文案,但可以降低认知成本:
- 在输入框右侧固定放一个
<button>发送</button>,视觉强化动作预期 - 同时监听
keydown事件,判断event.key === 'Enter'后执行相同逻辑 - 避免只依赖
enterkeyhint做交互引导,尤其在微信、飞书等 WebView 场景中 - placeholder 里加提示语(如“输入后点‘搜索’”)比硬等软键盘改文案更可靠
最常被忽略的一点:它不改变表单默认提交行为。哪怕写了 enterkeyhint="search",<form> 里的 <input> 按回车依然会 submit——得自己 event.preventDefault() 或换用 type="button" 配合 JS 提交。


















