GPT补给站 AI 学堂
浏览课程目录

复现并修复一个表单 Bug

下载一个故意接受空姓名的表单练习包,把复现步骤交给 Codex,再用四种输入验证修复结果。

内容更新于

网站与代码路线第 2 / 2 课返回 AI 学堂

学完可以:得到拒绝空姓名、保留正常输入的本地表单。

建议练习时间:约 25 分钟。准备:已能使用 Codex 的本地文件任务;准备浏览器与一个独立练习文件夹。

本课目录

准备:下载并解压练习包

这是本站编写的虚构教学表单,只在当前浏览器里显示结果,不提交数据、不连接业务服务器。下载 ZIP 后解压到独立文件夹,确认 form-bug.html、form-bug.css、form-bug.js 三个文件放在一起;保留一份原始副本。

先复现:空值也显示成功

  1. 打开原始文件

    双击 form-bug.html,在浏览器里不填姓名,直接点“登记”。原版会错误地显示“已登记”。

  2. 再试三个空格

    在姓名里输入三个空格再提交。原版仍错误地显示成功,说明不能只检查字符数大于零。

  3. 记录正常情况

    输入“张三”并提交,记录成功文字。修复应保留正常输入的行为,避免只堵住空值却破坏原功能。

操作:把复现、期望和范围说完整

让 Codex 在练习文件夹里读取 form-bug.html,再发送下面的指令。先看它定位的原因和修改位置,完成后重新在浏览器打开或刷新这个文件。

表单修复指令
请修复当前文件夹内 form-bug.html 的姓名校验问题。
复现:浏览器打开文件 → 不输入姓名直接点“登记”;或只输入三个空格再点“登记”。
实际:这两种情况都显示“已登记”。期望:显示“请输入姓名”,不显示成功内容。
正常姓名“张三”应显示“已登记:张三”;姓名两侧的空格应去掉;重复提交不刷新页面。
只修改姓名校验与相关提示,保留 HTML、CSS、JS 三个文件、教学说明和样式;不增加外部依赖或真实提交。
先定位原因再做最小修改。完成后说明修改点、实际运行的检查与无法执行的检查。

结果对照:四种输入都要试

原版 name.length >= 0 对任何字符串都成立。参考修复思路是先 trim() 去掉首尾空白,再判断是否为空;不要求固定写法,但行为必须符合上面的清单。

  • 特别检查先填“张三”成功、再删空并提交时,旧的成功结果是否被清除。
  • 浏览器里看到的提示比回复里的“已修复”更有说服力。
输入与预期结果
空输入 → “请输入姓名”,不显示已登记
三个空格 → “请输入姓名”,不显示已登记
张三 → “已登记:张三”
  张三   → “已登记:张三”(去掉两端空格)
以上情况重复提交 → 页面不刷新、不发送网络请求

仍有问题:把失败输入原样给出来

  • 空输入挡住了,空格没挡住:把“三个空格”的复现单独反馈,要求在校验前处理首尾空白。
  • 修改后没有变化:确认打开的文件路径与修改路径一致,然后刷新;别误开原始副本。
  • 错误提示出现但旧成功文字还在:补充先成功再删空的复现步骤,要求清理互相矛盾的提示。
  • 修复新增了服务器或依赖:指出只需要本地校验,要求去掉额外功能并保留教学说明。

换成你的任务:使用同一份问题报告

真实项目里,继续提供复现步骤、期望、实际、报错、相关文件和验收方法。先保存可回退版本;不要只贴一句“不能用了”。本练习只验证前端姓名输入,真实表单接入后还需要服务器按业务规则验证。

复用 Codex 问题描述方法

学完检查

逐项核对实际结果,再继续下一课。

  • 能在原版复现空姓名与空格被接受的错误。
  • 修复后四种输入全部符合预期,重复提交不刷新。
  • 先成功再删空时,旧成功文字被清除。
  • 仍是本地教学文件,没有真实提交或新依赖。

官方参考资料

练习资料、示例指令与结果对照由本站编写;以下官方资料用于核对工具用法,核对日期为 2026-10-03。界面、功能和账号可用范围可能调整,以实际客户端及官方说明为准。