关于 hwc-forms-validation
面向 Hotwire 开发者的表单与验证技能,涵盖 Turbo Frames 和 Stimulus 表单流程。它提供错误重绘、提交响应及保留用户输入上下文的实践指引。
主要功能
- 01规划常见表单交互流程
- 02用 Turbo Frame 原位呈现验证错误
- 03区分验证失败与成功响应
- 04保留焦点和光标位置
- 05避免重复输入状态
适用场景
- 01实现行内编辑和模态表单
- 02构建带验证的类型搜索
- 03处理帧外部的表单控件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lucianghinda/ superpowers-ruby --skill hwc-forms-validation安装后在 Claude Code 中输入/hwc-forms-validation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/2023-11-07-turbo-frames-typeahead-search.md2024-01-16-stimulus-action-parameters.md2024-02-27-turbo-frames-inline-edit.md2024-05-21-turbo-frames-modals-validation.md2025-10-20-turbo-frames-typeahead-validation.md2026-02-03-turbo-frames-external-form.mdINDEX.md详细介绍
表单与验证
使用 Turbo Frames 和 Stimulus 实现以表单为核心的 Hotwire 工作流。
核心工作流
- 确定表单流程:创建/编辑、内联编辑、类型提示、模态表单或外部控件。
- 如果验证错误需要在原处重新渲染,请用 Turbo Frame 包裹表单交互范围。
- 验证失败时返回
422,成功重定向时返回303。 - 仅当 Turbo 默认行为不够用时,才使用
turbo:submit-end处理提交后的行为。 - 重新渲染时保留用户上下文(焦点/光标位置/选区)。
注意事项
- 为输入状态保留唯一事实来源;避免在 Frame 和非 Frame DOM 中重复放置控件。
- 对于渲染在目标
<form>层级之外的控件,请使用 HTMLform属性。 - 避免在每次击键时触发提交逻辑,除非已进行防抖/节流处理。
- 当表单响应仅更新一个 Frame 时,明确指定提交后的行为。
有选择地加载参考资料
仅打开当前请求所需的文件。
- 内联编辑:
references/2024-02-27-turbo-frames-inline-edit.md - 模态验证流程:
references/2024-05-21-turbo-frames-modals-validation.md - 类型提示搜索:
references/2023-11-07-turbo-frames-typeahead-search.md - 带焦点处理的类型提示验证:
references/2025-10-20-turbo-frames-typeahead-validation.md - Frame 中的外部表单控件:
references/2026-02-03-turbo-frames-external-form.md - 表单的 Stimulus action 参数:
references/2024-01-16-stimulus-action-parameters.md
完整目录请参阅 references/INDEX.md。
转交给相邻技能
- 导航/历史记录/缓存行为:使用
hwc-navigation-content - WebSocket 或 Turbo Stream 推送更新:使用
hwc-realtime-streaming - 媒体上传/播放行为:使用
hwc-media-content - 通用 UX 润色(加载指示器/进度/过渡效果):使用
hwc-ux-feedback - 一般 Stimulus API 设计问题:使用
hwc-stimulus-fundamentals
评论
支持 Markdown