OpenAI: GPT-5.4 在「动态表单」的评测结果
这是该 AI 模型在此测试用例上的详细评测结果。
基本信息
- 模型名称:OpenAI: GPT-5.4
- 用例名称:动态表单
- 测试类型:网页生成
- 评测维度:表单设计
系统提示词(System Prompt)
这是给 AI 模型的背景设定和角色指令:
你是一名资深前端开发工程师,擅长使用原生 HTML、CSS 和 JavaScript 构建交互式 Web 应用。 回答要求: 1. 所有代码必须封装在单个 HTML 文件中,不依赖任何外部库或 CDN,可直接在浏览器中运行。 2. 代码结构清晰,HTML/CSS/JavaScript 各自分区,变量命名语义化,逻辑注释简洁到位。 3. 优先保证核心功能的正确性与完整性,UI 风格简洁美观即可,无需过度设计。 4. 对用户操作给予明确的视觉反馈(如错误提示、成功状态),确保基础交互体验流畅。 5. 输出完整的、可独立运行的 HTML 代码,不省略任何部分。
用户提示词(User Prompt)
这是用户给 AI 模型的具体任务要求:
请生成一个「问卷调查创建」动态表单页面,所有代码(HTML、CSS、JavaScript)写在同一个 HTML 文件中。 ## 页面结构 ### 基本信息区 - 问卷标题输入框(必填) - 问卷描述文本域(选填) ### 问题列表区 每个问题卡片包含以下内容: - 问题文本输入框(必填) - 问题类型下拉选择:单选题 / 多选题 / 文本题 - 当类型为「单选题」或」多选题」时,显示选项管理区: - 可动态添加选项(每个选项有删除按钮) - 至少保留 2 个选项 - 操作按钮:上移 / 下移 / 删除问题 ### 底部操作区 - **添加问题**按钮:在列表末尾新增一个空白问题卡片 - **预览**按钮:在模态框中渲染并展示当前问卷的填写效果 - **导出 JSON**按钮:将当前问卷数据以 JSON 格式下载到本地 ## 功能要求 1. **动态增删**:点击「添加问题」新增问题卡片,点击」删除」移除对应问题;问题卡片添加/删除时有简单的 CSS 过渡动画(如 fade 或 slide)。 2. **类型切换**:切换问题类型时,选项管理区根据类型动态显示或隐藏。 3. **上移/下移**:调整问题顺序,第一个问题禁用「上移」,最后一个问题禁用」下移」。 4. **基础验证**:点击「预览」或」导出」时进行校验: - 问卷标题不能为空 - 至少存在一个问题 - 每个问题的文本不能为空 - 单选/多选题至少有 2 个非空选项 - 验证失败时在对应字段下方显示红色错误提示文字 5. **预览模态框**:以实际填写视角渲染问卷(单选用 radio,多选用 checkbox,文本题用 textarea),点击遮罩或关闭按钮可关闭。 6. **导出 JSON**:将问卷数据(标题、描述、问题列表及选项)序列化为 JSON 文件并触发下载。 ## UI 要求 - 页面整体居中,最大宽度 720px - 问题卡片有明显的边框/阴影区分 - 错误提示文字为红色,紧贴对应输入框下方 - 按钮样式区分主操作(蓝色)和危险操作(红色)
任务要求
AI 模型需要满足以下要求:
- 动态增删问题卡片功能正确,添加/删除时有可见的 CSS 过渡动画效果
- 问题类型切换(单选/多选/文本)能正确控制选项管理区的显示与隐藏,选项可动态增删
- 上移/下移按钮能正确调整问题顺序,边界问题(首尾)的对应按钮处于禁用状态
- 基础必填验证覆盖所有关键字段(标题、问题文本、选项内容),错误提示清晰显示在对应字段附近
- 预览模态框能正确渲染问卷填写视图(radio/checkbox/textarea),并可正常关闭
- 导出 JSON 功能能将完整问卷数据(含标题、描述、所有问题及选项)正确序列化并触发文件下载
评测结果
综合得分
该模型在此用例的得分为:87.5 分(满分 100 分),已通过
基础难度评测结果
- 得分:87.5 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
```html 问卷调查创建 /* ========================= 基础样式 ========================= */ * { box-sizing: border-box; } :root { --bg: #f5f7fb; --card: #ffffff; --border: #d9e0ea; --text: #1f2a37; --subtext: #6b7280; --primary: #2563eb; --primary-hover: #1d4ed8; --danger: #dc2626; --danger-hover: #b91c1c; --secondary: #64748b; --secondary-hover: #475569; --success: #16a34a; --shadow: 0 8px 24px rgba(15, 23, 42, 0.08); --radius: 12px; --error: #dc2626; } body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; background: var(--bg); color: var(--text); } .page { max-width: 720px; margin: 32px auto 48px; padding: 0 16px; } .page-header { margin-bottom: 20px; } .page-title { margin: 0 0 8px; font-size: 28px; font-weight: 700; } .page-desc { margin: 0; color: var(--subtext); font-size: 14px; } .section-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px; margin-bottom: 18px; } .section-title { margin: 0 0 16px; font-size: 18px; font-weight: 700; } .field { margin-bottom: 16px; } .field:last-child { margin-bottom: 0; } .label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; } .required::after { content: " *"; color: var(--error); } input[type="text"], textarea, select { width: 100%; border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; font-size: 14px; color: var(--text); background: #fff; outline: none; transition: border-color 0.2s, box-shadow 0.2s, background 0.2s; } input[type="text"]:focus, textarea:focus, select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12); } textarea { resize: vertical; min-height: 96px; } .input-error { border-color: var(--error) !important; background: #fff7f7; } .error-text { color: var(--error); font-size: 12px; line-height: 1.4; margin-top: 6px; min-height: 17px; } .muted-text { color: var(--subtext);...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该实现是一个功能完整、代码结构清晰的问卷创建工具。HTML/CSS/JS分区明确,变量命名语义化,注释适当。核心功能(增删问题、类型切换、排序、验证、预览、导出)均已实现且基本可用。主要不足在于动画实现方案:通过重新渲染整个列表来更新状态,导致动画效果不够精细流畅(其他卡片会意外触发进入动画)。若采用就地更新DOM而非全量重渲染,动画体验会更好。验证逻辑完整,错误提示位置准确,UI风格统一美观,整体是一个高质量的实现。 【GEMINI】这是一份高质量的代码生成结果。模型不仅完全满足了所有功能性需求,还在代码的可维护性、交互细节(如防抖动、状态重置、错误提示定位)以及视觉呈现上表现出色。代码封装在单个文件中且不依赖外部库,完全符合交付标准,是一个非常优秀的工程实践案例。 【KIMI】该实现是一个高质量的动态表单解决方案,代码结构清晰,功能完整,UI 设计专业。核心功能全部正确实现,验证逻辑严谨,动画效果流畅。主要改进空间在于修复预览中单选题默认选中的逻辑 bug,以及增强验证错误信息的精确度和键盘可访问性。整体达到生产可用水平,体现了良好的前端工程实践。
进阶难度评测结果
- 得分:87.2 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
```html 动态问卷创建器(进阶版) :root { --bg: #f5f7fb; --card: #ffffff; --text: #1f2937; --muted: #6b7280; --line: #e5e7eb; --primary: #2563eb; --primary-soft: #dbeafe; --danger: #ef4444; --danger-soft: #fee2e2; --success: #10b981; --success-soft: #d1fae5; --warning: #f59e0b; --shadow: 0 12px 30px rgba(15, 23, 42, 0.08); --radius: 16px; --radius-sm: 10px; --transition: 180ms ease; } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif; background: linear-gradient(180deg, #f8fafc 0%, #f3f6fb 100%); color: var(--text); } .container { max-width: 1100px; margin: 0 auto; padding: 28px 16px 80px; } .page-header { margin-bottom: 20px; } .page-title { margin: 0; font-size: 30px; font-weight: 800; letter-spacing: -0.02em; } .page-subtitle { margin: 10px 0 0; color: var(--muted); font-size: 14px; line-height: 1.7; } .card { background: var(--card); border: 1px solid rgba(226, 232, 240, 0.9); border-radius: var(--radius); box-shadow: var(--shadow); } .section { padding: 20px; margin-bottom: 18px; } .section-title { margin: 0 0 16px; font-size: 18px; font-weight: 700; display: flex; align-items: center; justify-content: space-between; gap: 12px; } .section-subtitle { color: var(--muted); font-size: 13px; font-weight: 500; } .grid { display: grid; gap: 16px; } .form-group { display: grid; gap: 8px; } .label { font-size: 14px; font-weight: 600; color: #374151; display: flex; align-items: center; justify-content: space-between; gap: 10px; } .required::after { content: " *"; color: var(--danger); } input[type="text"], textarea, select { width: 100%; border: 1px solid #d1d5db; background: #fff; border-radius: 12px; padding: 12px 14px; font-size: 14px; color: var(--text); outline: none; transition: border-color var(--transition), box-shadow var(--transition), background var(--transition); } input[type="text"]:focus,...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该实现是一个功能完整度较高的动态问卷创建器,核心需求(增删问题/选项、拖拽排序、实时验证、持久化、预览、导出)均有覆盖,代码架构清晰,UI 设计精致现代。主要不足在于全量重绘策略导致的焦点丢失问题(option input 时调用 renderQuestions 会使输入框失焦,影响实际使用体验),以及部分验证逻辑重复。整体而言是一个质量较高的单文件实现,达到了进阶版的预期水准。 【GEMINI】这是一份高质量的工程化代码实现。模型不仅完整覆盖了所有复杂的功能需求,还在交互细节、动画过渡和状态管理上展现了资深前端工程师的专业水准。代码逻辑严密,无运行时异常,是一个可直接用于生产环境的优秀原型。 【KIMI】这是一个高质量的单文件动态问卷创建器实现,完整覆盖了题目要求的所有功能点。代码采用现代前端工程化思维,状态管理清晰,交互细节精致,动画流畅,验证机制完善。特别值得肯定的是拖拽排序的原生 API 正确使用、嵌套数据结构的状态管理、以及响应式 UI 设计。整体达到生产可用水准,仅存在少量与题目字面要求的细微差异(如选项验证时机),但实现方式在实际体验上更优。
困难难度评测结果
- 得分:82.6 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
高级动态问卷构建器 :root{ --bg:#0f1221; --bg-soft:#161a2f; --card:#1b2140cc; --card-solid:#1b2140; --line:#313a68; --text:#eef2ff; --muted:#a8b0d3; --primary:#6d7cff; --primary-2:#8b5cf6; --danger:#ef4444; --warning:#f59e0b; --success:#10b981; --shadow:0 20px 50px rgba(0,0,0,.28); --radius:20px; --radius-sm:14px; --radius-xs:10px; } *{box-sizing:border-box} html,body{height:100%} body{ margin:0; font-family:Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "PingFang SC","Microsoft YaHei", sans-serif; color:var(--text); background: radial-gradient(circle at top left, rgba(109,124,255,.25), transparent 28%), radial-gradient(circle at top right, rgba(139,92,246,.22), transparent 26%), linear-gradient(180deg, #0b1020, #11162a 45%, #0c1020); min-height:100vh; } .app{ max-width:1280px; margin:0 auto; padding:24px; } .topbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; flex-wrap:wrap; } .brand{ display:flex;align-items:center;gap:14px; } .logo{ width:44px;height:44px;border-radius:14px; background:linear-gradient(135deg,var(--primary),var(--primary-2)); box-shadow:0 12px 24px rgba(109,124,255,.35); display:grid;place-items:center;font-weight:800;font-size:20px; } .brand h1{margin:0;font-size:24px} .brand p{margin:4px 0 0;color:var(--muted);font-size:13px} .toolbar{ display:flex;gap:10px;flex-wrap:wrap; } .shell{ background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03)); border:1px solid rgba(255,255,255,.08); border-radius:28px; padding:20px; box-shadow:var(--shadow); backdrop-filter: blur(12px); } .btn{ appearance:none;border:none;cursor:pointer; color:var(--text);padding:12px 16px;border-radius:14px; background:#222948;border:1px solid rgba(255,255,255,.08); transition:.24s ease; font-weight:700;font-size:14px; display:inline-flex;align-items:center;justify-content:center;gap:8px; min-height:44px; } .btn:hover{transform:translateY(-1px);background:#293159}...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该实现是一个功能相当完整的高级动态问卷构建器,在单 HTML 文件约束下实现了多步骤向导、富文本编辑、条件显示逻辑、拖拽排序、Web Audio API 音效、JSON 导入导出和 localStorage 持久化等全部核心需求。代码模块化结构清晰,状态管理采用发布订阅模式,整体架构设计合理。UI 视觉效果精致,深色蓝紫主题专业美观。主要不足在于:全量 DOM 重建策略影响性能和用户体验(输入时光标丢失问题);Quill 编辑器与深色主题的视觉融合度不足;部分边界情况处理(如步骤验证跳转逻辑)略显脆弱。总体而言是一个高质量的实现,达到了专业前端工程师的水准。 【GEMINI】这是一个极其优秀的前端工程实现。模型不仅完全满足了所有复杂的功能需求,还在单文件限制下保持了极高的代码可维护性和交互精致度。特别是对 Web Audio API 的应用和对复杂状态(条件逻辑)的实时处理,体现了资深全栈工程师的水平。代码结构清晰,可扩展性强,是一个高质量的单页应用范例。 【KIMI】该实现是一个高质量的动态问卷构建器,完整覆盖了需求规格中的核心功能点。多步骤向导、条件显示逻辑、拖拽排序、音效反馈、JSON 导入导出及 localStorage 持久化均达到生产可用水平。代码采用模块化 IIFE 结构,状态管理清晰,交互细节精致。主要改进空间在于移动端拖拽体验优化、条件逻辑配置的实时响应性能,以及代码的进一步解耦和类型安全增强。整体而言,这是一个在单文件约束下完成度很高的实现。
相关链接
您可以通过以下链接查看更多相关内容: