GLM-5.1 在「表单验证框架」的评测结果

这是该 AI 模型在此测试用例上的详细评测结果。

基本信息

  • 模型名称:GLM-5.1
  • 用例名称:表单验证框架
  • 测试类型:网页生成
  • 评测维度:表单设计

系统提示词(System Prompt)

这是给 AI 模型的背景设定和角色指令:

你是一名资深前端开发工程师,专注于 HTML/CSS/JavaScript 的基础应用与表单交互设计。 回答要求: 1. 所有代码必须整合在单个 HTML 文件中,可直接在浏览器中独立运行,无需任何外部依赖。 2. JavaScript 逻辑需清晰易读,优先保证功能正确性,代码结构简洁,适合入门级阅读。 3. 表单验证逻辑与 UI 展示逻辑应有基本分离,避免将所有代码堆砌在一个函数中。 4. CSS 样式需覆盖正常态、错误态(红色边框)和成功态(绿色边框)的视觉反馈。 5. 输出完整代码,不得省略任何部分,不添加任何解释性文字,直接输出 HTML 代码块。

用户提示词(User Prompt)

这是用户给 AI 模型的具体任务要求:

# 任务:实现一个基础表单验证页面 请在单个 HTML 文件中实现一个用户注册表单,包含基本的客户端验证功能。 ## 表单字段要求 包含以下 6 个字段: 1. **用户名**:必填,最少 3 个字符 2. **邮箱**:必填,需符合邮箱格式(xxx@xxx.xxx) 3. **密码**:必填,最少 8 个字符 4. **确认密码**:必填,需与密码字段内容一致 5. **年龄**:必填,数字类型,范围 18 ~ 100 6. **个人网站**:选填,若填写需符合 URL 格式(以 http:// 或 https:// 开头) ## 验证功能要求 1. **失焦验证**:用户离开输入框(blur 事件)时触发对该字段的验证。 2. **提交验证**:点击提交按钮时,对所有字段进行完整验证;若存在错误,阻止提交并将焦点定位到第一个出错的字段。 3. **错误提示**: - 验证失败时,输入框边框变为红色。 - 在输入框正下方显示具体的错误文字说明(如「用户名不能为空」、「邮箱格式不正确」)。 - 验证通过时,输入框边框变为绿色,错误信息消失。 4. **提交成功**:所有字段验证通过后,隐藏表单,显示一条成功提示信息(如「注册成功!」)。 ## 样式要求 - 页面整体居中,最大宽度 480px,有基本的卡片式外观(白色背景、圆角、阴影)。 - 每个字段包含 label 标签,必填字段的 label 旁有红色星号(*)标记。 - 错误信息文字为红色小字,显示在输入框下方。 - 提交按钮样式醒目,宽度占满表单。 ## 技术约束 - 不得使用任何第三方库或框架(包括 jQuery、Bootstrap 等)。 - 验证逻辑必须使用原生 JavaScript 实现,不得依赖 HTML5 原生 `required`、`type=「email」` 等浏览器内置验证机制(即需禁用原生验证:`novalidate`)。 - 所有验证规则通过 JavaScript 函数实现,每种规则(必填、长度、邮箱格式、数字范围、密码匹配、URL 格式)应封装为独立的验证函数。

任务要求

AI 模型需要满足以下要求:

  1. 表单包含全部 6 个指定字段,label 标签完整,必填字段有星号标记,表单设置 novalidate 属性禁用原生验证。
  2. 实现失焦验证(blur)和提交验证两种时机,提交时若有错误需阻止默认行为并聚焦到第一个错误字段。
  3. 六种验证规则(必填、最小长度、邮箱格式、密码匹配、数字范围、URL 格式)均通过独立 JavaScript 函数实现,逻辑正确。
  4. 错误状态下输入框边框变红并在其下方显示具体错误文字;验证通过后边框变绿且错误信息消失。
  5. 所有字段验证通过后提交成功,表单隐藏并显示成功提示信息。
  6. 页面具备基本的卡片式布局样式,整体美观,无明显样式缺失或错位。

评测结果

综合得分

该模型在此用例的得分为:96.0 分(满分 100 分),已通过

基础难度评测结果

  • 得分:96.0 分
  • 通过状态:已通过

模型生成产物

以下是该模型针对此任务的实际生成内容:

```html 用户注册 /* ========== 基础重置与全局变量 ========== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } :root { --bg: #f0f2f5; --card: #ffffff; --fg: #1a1a2e; --muted: #6b7280; --accent: #e63946; --accent-hover: #c1121f; --success: #2d6a4f; --success-border: #40916c; --error: #d00000; --error-border: #e63946; --border: #d1d5db; --radius: 8px; --shadow: 0 4px 24px rgba(0, 0, 0, 0.08), 0 1px 4px rgba(0, 0, 0, 0.04); } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; background: var(--bg); color: var(--fg); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px 16px; /* 微妙的背景纹理 */ background-image: radial-gradient(circle at 20% 30%, rgba(230, 57, 70, 0.04) 0%, transparent 50%), radial-gradient(circle at 80% 70%, rgba(45, 106, 79, 0.04) 0%, transparent 50%); } /* ========== 卡片容器 ========== */ .card { background: var(--card); max-width: 480px; width: 100%; border-radius: var(--radius); box-shadow: var(--shadow); padding: 40px 36px 36px; position: relative; overflow: hidden; } /* 卡片顶部装饰条 */ .card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--accent), var(--success-border)); } .card-title { font-size: 26px; font-weight: 800; letter-spacing: -0.5px; margin-bottom: 6px; color: var(--fg); } .card-subtitle { font-size: 14px; color: var(--muted); margin-bottom: 28px; } /* ========== 表单字段 ========== */ .field { margin-bottom: 20px; } .field:last-of-type { margin-bottom: 28px; } .field-label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; color: var(--fg); } /* 必填红色星号 */ .field-label .required-mark { color: var(--accent); margin-left: 2px; font-weight: 700; } .field-input { display: block; width: 100%; height: 44px; padding: 0 14px; font-size: 15px; color: var(--fg); background: #fafafa; border: 1.5px solid var(--border);...

AI 评审点评

以下是 AI 评审对该模型输出的点评:

【CLAUDE】这是一份高质量的表单验证实现。代码完整实现了所有功能要求:6 个字段配置正确,验证规则通过独立函数封装且逻辑准确,失焦和提交两种验证时机均正确触发,错误/成功状态的视觉反馈清晰即时,提交成功后的状态切换流畅。代码结构优秀,验证逻辑与 UI 逻辑完全分离,注释详尽,模块划分清晰,非常适合入门级阅读。样式实现精美,卡片布局、颜色状态、动画效果等细节处理到位,甚至包含无障碍和响应式设计考虑。唯一可改进之处是年龄验证可进一步严格化(如排除小数),但整体已达到优秀水平,完全满足任务要求并有所超越。 【GEMINI】该生成结果是一份教科书级的表单验证实现方案。它完全遵守了所有技术约束(如禁用原生验证、不使用第三方库、逻辑解耦等),代码编写规范且极具可读性。UI 设计美观,交互细节(如第一个错误聚焦、选填字段逻辑)处理得非常到位,完全符合资深前端开发工程师的角色设定。 【KIMI】该实现完全满足题目所有功能要求,代码质量优秀。验证逻辑准确且边界处理完善,交互反馈即时准确,代码结构清晰分离验证与UI逻辑,样式美观且超出基础要求。整体是一份高质量的入门级表单验证实现,无明显缺陷。

进阶难度评测结果

  • 得分:94.9 分
  • 通过状态:已通过

模型生成产物

以下是该模型针对此任务的实际生成内容:

这是一个相当有深度的需求,我来设计一个架构清晰、视觉精致的表单验证框架。核心思路是将验证引擎(纯逻辑)、存储管理器、表单控制器(UI协调)三者彻底分离,通过 `data-*` 属性实现规则与引擎的解耦。 ```html 表单验证框架 /* ======================================== CSS 变量 & 全局重置 ======================================== */ :root { --bg-deep: #0b0d14; --bg-card: #13161f; --bg-input: #191d2a; --bg-input-hover: #1e2233; --text-primary: #e4e2df; --text-secondary: #8b92a5; --text-muted: #555d73; --accent: #d4943a; --accent-hover: #e5a64e; --accent-glow: rgba(212, 148, 58, 0.12); --success: #2dd4a0; --success-dim: rgba(45, 212, 160, 0.1); --error: #f06060; --error-dim: rgba(240, 96, 96, 0.08); --border: #252a3a; --border-hover: #333a50; --radius: 10px; --radius-sm: 6px; --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1); --font: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Noto Sans SC', sans-serif; } *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } html { font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { font-family: var(--font); background: var(--bg-deep); color: var(--text-primary); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 2rem 1rem; position: relative; overflow-x: hidden; } /* ======================================== 背景装饰 - 浮动光晕 ======================================== */ .bg-glow { position: fixed; border-radius: 50%; pointer-events: none; filter: blur(120px); z-index: 0; } .bg-glow--amber { width: 500px; height: 500px; background: rgba(212, 148, 58, 0.08); top: -150px; right: -120px; animation: glowDrift 25s ease-in-out infinite; } .bg-glow--teal { width: 400px; height: 400px; background: rgba(45, 212, 160, 0.06); bottom: -100px; left: -100px; animation: glowDrift 30s ease-in-out infinite reverse; } .bg-glow--violet { width: 300px; height: 300px; background: rgba(139, 92, 246, 0.05); top: 50%; left: 50%; transform: translate(-50%, -50%); animation: glowPulse 20s ease-in-out infinite; }...

AI 评审点评

以下是 AI 评审对该模型输出的点评:

【CLAUDE】这是一个实现质量极高的表单验证框架。代码架构采用三层分离设计(ValidationEngine、StorageManager、FormController),完全符合面向对象和模块化要求,验证逻辑与 DOM 操作彻底解耦。核心功能通过 data-* 属性配置规则,引擎自动解析执行,扩展性强。异步验证实现了防抖、版本控制、loading 状态等细节,处理得当。UI 三态分明(成功/错误/loading),视觉反馈清晰,额外实现了密码强度指示器、字数统计、Toast 通知等增强体验的功能。数据持久化逻辑完整,排除敏感字段,支持恢复和清除。整体代码质量高,注释清晰,命名规范,是一个可直接用于生产环境的高质量实现。唯一小瑕疵是 FormController 类承担了较多辅助功能导致略显庞大,但不影响整体优秀评价。 【GEMINI】该生成结果是一份高质量的资深前端工程实现。它不仅完全满足了所有功能性要求(如 data-* 属性配置、异步防抖、持久化等),还在架构设计上表现出极高的专业性,通过类封装实现了逻辑与 UI 的解耦。视觉效果和交互细节处理得非常细腻,代码健壮且易于扩展,是表单验证系统开发的典范。 【KIMI】整体而言,提供的代码实现了所有要求的功能,包括核心验证规则、异步验证、UI交互细节和表单数据持久化。代码结构清晰,功能实现完整,符合题目要求。

困难难度评测结果

  • 得分:88.8 分
  • 通过状态:已通过

模型生成产物

以下是该模型针对此任务的实际生成内容:

```html 高级多步骤表单验证框架 :root { --primary: #4f46e5; --primary-hover: #4338ca; --success: #10b981; --error: #ef4444; --warning: #f59e0b; --bg: #f8fafc; --card-bg: #ffffff; --text: #1e293b; --text-muted: #64748b; --border: #e2e8f0; --radius: 8px; --shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; display: flex; flex-direction: column; align-items: center; padding: 20px; } /* 顶部导航与音效控制 */ .top-bar { width: 100%; max-width: 800px; display: flex; justify-content: flex-end; margin-bottom: 20px; } .sound-toggle { background: var(--card-bg); border: 1px solid var(--border); padding: 8px 16px; border-radius: 20px; cursor: pointer; display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--text-muted); transition: all 0.2s; } .sound-toggle:hover { border-color: var(--primary); color: var(--primary); } .sound-toggle svg { width: 18px; height: 18px; } /* 步骤指示器 */ .step-indicator { display: flex; justify-content: space-between; margin-bottom: 40px; position: relative; width: 100%; max-width: 800px; } .step-indicator::before { content: ''; position: absolute; top: 20px; left: 0; right: 0; height: 2px; background: var(--border); z-index: 0; } .step-item { display: flex; flex-direction: column; align-items: center; position: relative; z-index: 1; flex: 1; } .step-circle { width: 40px; height: 40px; border-radius: 50%; background: var(--card-bg); border: 2px solid var(--border); display: flex; align-items: center; justify-content: center; font-weight: bold; color: var(--text-muted); transition: all 0.3s; } .step-item.active .step-circle { border-color: var(--primary); color: var(--primary); box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.2); } .step-item.completed .step-circle { background: var(--primary);...

AI 评审点评

以下是 AI 评审对该模型输出的点评:

【CLAUDE】这是一个高质量的多步骤表单验证框架实现。验证引擎采用 Class 封装,架构清晰,UI 与业务逻辑严格分离,可扩展性强。多步骤向导功能完整,步骤切换流畅,条件显示逻辑正确。数据持久化和音效反馈系统均按要求实现。代码结构专业,注释清晰,CSS 设计现代且响应式。主要不足在于异步验证的 UI 反馈(loading 状态和按钮禁用)未完整实现,这是需求中明确要求的细节。整体而言,该实现展现了扎实的前端工程能力,核心功能完备,交互体验良好,是一个可直接运行且接近生产级别的表单框架。 【GEMINI】这是一份极高水准的实现。代码组织严谨,完全遵循了工程化实践建议。验证引擎的设计具有很强的通用性,UI 交互(如音效、动画、持久化)超出了基础要求,展现了资深前端工程师的专业素养。所有功能点(包括复杂的异步验证和 Web Audio API 合成)均在单文件内完美运行。 【KIMI】该实现整体结构清晰,采用 Class 封装验证引擎和向导控制器,基本满足了多步骤表单验证的核心需求。但在规则扩展性、异步验证状态管理、安全性细节(密码明文存储/显示)以及部分边界条件处理上存在不足。特别是'新增规则无需修改核心引擎'这一关键可扩展性要求未满足,异步验证的 loading UI 和按钮禁用状态也未完整实现。代码质量良好,但距离生产级健壮实现还有差距。

相关链接

您可以通过以下链接查看更多相关内容:

加载中...