NVIDIA: Nemotron 3 Super (free) 在「表单验证框架」的评测结果
这是该 AI 模型在此测试用例上的详细评测结果。
基本信息
- 模型名称:NVIDIA: Nemotron 3 Super (free)
- 用例名称:表单验证框架
- 测试类型:网页生成
- 评测维度:表单设计
系统提示词(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 模型需要满足以下要求:
- 表单包含全部 6 个指定字段,label 标签完整,必填字段有星号标记,表单设置 novalidate 属性禁用原生验证。
- 实现失焦验证(blur)和提交验证两种时机,提交时若有错误需阻止默认行为并聚焦到第一个错误字段。
- 六种验证规则(必填、最小长度、邮箱格式、密码匹配、数字范围、URL 格式)均通过独立 JavaScript 函数实现,逻辑正确。
- 错误状态下输入框边框变红并在其下方显示具体错误文字;验证通过后边框变绿且错误信息消失。
- 所有字段验证通过后提交成功,表单隐藏并显示成功提示信息。
- 页面具备基本的卡片式布局样式,整体美观,无明显样式缺失或错位。
评测结果
综合得分
该模型在此用例的得分为:78.7 分(满分 100 分),已通过
基础难度评测结果
- 得分:78.7 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
用户注册 body { margin: 0; font-family: Arial, Helvetica, sans-serif; background-color: #f5f5f5; display: flex; justify-content: center; align-items: flex-start; min-height: 100vh; padding-top: 20px; } .container { width: 100%; max-width: 480px; background: #fff; padding: 24px; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,.1); box-sizing: border-box; } h2 { margin-top: 0; margin-bottom: 20px; font-size: 1.8em; color: #333; text-align: center; } .field { margin-bottom: 16px; } label { display: block; margin-bottom: 4px; font-weight: 600; font-size: 0.95em; color: #222; } .required { color: #e53935; margin-left: 2px; } input { width: 100%; padding: 8px 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 1rem; box-sizing: border-box; transition: border-color .2s; } input.error { border-color: #e53935; } input.success { border-color: #43a047; } .error-message { color: #e53935; font-size: 0.75rem; margin-top: 4px; min-height: 1.2em; display: none; } button { width: 100%; padding: 10px; background: #1976d2; color: #fff; border: none; border-radius: 4px; font-size: 1rem; cursor: pointer; transition: background .2s; } button:hover { background: #1565c0; } .success-message { display: none; color: #43a047; font-size: 1.2rem; text-align: center; margin-top: 20px; } 用户注册 用户名 * 邮箱 * 密码 * 确认密码 * 年龄 * 个人网站 注册 注册成功! // 验证规则函数 function validateRequired(value) { return value.trim() !== ''; } function validateMinLength(value, min) { return value.length >= min; } function validateEmail(value) { const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return re.test(value); } function validateUrl(value) { if (value.trim() === '') return true; // 选填,空则通过 const re = /^https?:\/\/.+/; return re.test(value); } function validateNumberRange(value, min, max) { const num = Number(value); return !isNaN(num) && num >= min && num validateRequired(v), msg: '用户名不能为空' }, { validate: v => validateMinLength(v, 3), msg: '用户名至少需要 3 个字符' } ] }, { id: 'email', validators: [ { validate: v =>...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该候选输出整体实现了任务要求的绝大部分功能,代码结构清晰,配置化设计良好,样式美观符合卡片式布局要求。主要问题是 validateUrl 函数中注释「// 选填,空则通过」与后续代码写在同一行导致的 bug——const re 那行被注释覆盖,实际运行时非空 URL 会抛出 ReferenceError,这是一个影响功能正确性的实质性缺陷。此外整体交互逻辑、验证规则封装、视觉反馈机制均表现良好,属于基本完成任务但有明显 bug 的水平。 【GEMINI】该模型完美完成了所有任务要求。代码结构规范,逻辑实现严谨,交互反馈符合预期,且在样式设计上表现出色。完全遵循了「不得使用第三方库」及「禁用浏览器内置验证」的约束,是一份高质量的工程实现。 【KIMI】该实现完整满足任务所有核心要求,验证逻辑准确,交互反馈及时,代码结构清晰可读。六种验证规则均独立封装,blur 和 submit 验证时机正确处理,错误/成功状态视觉反馈完整,提交成功后的状态切换正常。页面样式符合卡片式布局规范,无外部依赖,可直接在浏览器运行。整体质量优秀, minor 优化空间包括邮箱正则的严格性和字段初始状态处理。
进阶难度评测结果
- 得分:72.4 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
表单验证框架(进阶版) :root { --color-success: #2ecc71; --color-error: #e74c3c; --color-muted: #95a5a6; --color-bg: #f9f9f9; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background: var(--color-bg); margin: 0; padding: 2rem; } h1 { text-align: center; margin-bottom: 1.5rem; } form { background: #fff; padding: 2rem; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,.1); max-width: 480px; margin: 0 auto; display: grid; gap: 1.5rem; } label { font-weight: 600; display: block; margin-bottom: .3rem; } input, select, textarea { width: 100%; padding: .6rem .8rem; border: 2px solid var(--color-muted); border-radius: 4px; font-size: 1rem; transition: border-color .2s, box-shadow .2s; box-sizing: border-box; } input.error, select.error, textarea.error { border-color: var(--color-error); } input.success, select.success, textarea.success { border-color: var(--color-success); } input.loading, select.loading, textarea.loading { border-color: var(--color-muted); background: #f0f8ff; } .field-feedback { min-height: 1.8rem; font-size: .875rem; display: flex; align-items: center; margin-top: .2rem; } .field-feedback.error { color: var(--color-error); } .field-feedback.success { color: var(--color-success); } .field-feedback.loading { color: var(--color-muted); } .success-icon::after { content: "✓"; margin-left: .2rem; } .loading-icon::after { content: "⟳"; animation: spin 1s linear infinite; margin-left: .2rem; } @keyframes spin { to { transform: rotate(360deg); } } .form-actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; } button { padding: .6rem 1.2rem; font-size: 1rem; border: none; border-radius: 4px; cursor: pointer; transition: background .2s; } button[type="submit"] { background: #3498db; color: #fff; } button[type="submit"]:disabled { background: #bdc3c7; cursor: not-allowed; } button.secondary { background: #ecf0f1; color: #2c3e50; } button.secondary:hover { background: #d5d8dc;...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该代码展示了相当扎实的前端工程能力:FormValidator类架构清晰、data-*属性驱动的规则系统设计合理、异步验证机制基本完整。然而代码存在多处由注释格式问题引发的严重 bug:maxlength验证规则、custom自定义验证、表单提交成功后的onFormSuccess调用均被意外注释掉,导致这些功能实际失效。此外getMessage对需要参数的默认消息处理不当,success-icon与innerHTML重复显示等细节问题也影响了最终质量。如果修复这些注释引发的语法问题,该代码本可达到较高水平。当前状态下整体可用性约为70%,核心验证链路(required、email、number、pattern、match等)基本可用,但maxlength、custom验证及成功提交流程存在明确缺陷。 【GEMINI】该模型交付了一个高质量、模块化的表单验证框架。代码结构清晰,完全符合面向对象的设计要求,且所有功能需求(包括复杂的异步验证、持久化存储、UI 状态反馈)均已实现。代码可读性高,逻辑严密,是一个非常优秀的工程化示例。 【KIMI】这是一个高质量的表单验证框架实现,完全满足所有功能需求。代码采用面向对象方式封装,结构清晰,验证逻辑与UI渲染分离良好。核心验证规则、异步验证、状态显示、数据持久化四大模块均实现完整。主要改进点:confirmPassword的联动验证优化、异步验证加载时的用户体验细节、以及部分边界情况的处理。整体代码可直接用于生产环境,具有良好的可扩展性和维护性。
困难难度评测结果
- 得分:49.7 分
- 通过状态:未通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
高难度表单验证框架 — 多步骤向导版 :root { --primary:#2563eb; --primary-dark:#1d4ed8; --success:#10b981; --error:#ef4444; --bg:#f9fafb; --card:#ffffff; --text:#111827; --muted:#6b7280; --transition:0.3s ease; } *{box-sizing:border-box;margin:0;padding:0} body{ font-family:system-ui,Arial,sans-serif; background:var(--bg); color:var(--text); line-height:1.5; padding:20px; } h1{text-align:center;margin-bottom:24px;font-weight:600} .container{max-width:720px;margin:0 auto;background:var(--card);border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.08);overflow:hidden} .header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#f3f4f6;border-bottom:1px solid #e5e7eb} .mute-toggle{font-size:0.9rem;cursor:pointer} .step-indicator{display:flex;justify-content:space-between;padding:12px 24px;position:relative} .step-indicator::after{ content:"";position:absolute;left:0;right:0;top:50%;height:4px;background:#e5e7eb;z-index:0; } .step{ position:relative;z-index:1;flex:1;text-align:center;padding:8px 4px;font-size:.9rem;color:var(--muted); } .step.active{color:var(--primary);font-weight:600} .step.completed{color:var(--success);font-weight:600} .step .dot{ width:16px;height:16px;border-radius:50%;background:#e5e7eb;margin:0 auto 4px;display:flex;align-items:center;justify-content:center; font-size:.7rem;color:#fff;transition:var(--transition); } .step.active .dot{background:var(--primary)} .step.completed .dot{background:var(--success)} .step .label{display:block} .steps-wrapper{overflow:hidden;position:relative;height:calc(100vh - 180px);} /* adjust as needed */ .step-panel{ position:absolute;top:0;left:0;width:100%;height:100%;padding:24px;opacity:0;transform:translateX(100%);transition:opacity .3s,transform .3s; overflow-y:auto; } .step-panel.active{ opacity:1;transform:translateX(0); } .step-panel.prev{transform:translateX(-100%);opacity:0} .form-group{margin-bottom:16px} label{display:block;margin-bottom:4px;font-weight:500;font-size:.95rem}...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该代码展现了对任务需求的整体理解,框架结构设计思路正确(FormValidator + Wizard双类分离、data-*驱动配置、Web Audio API音效合成),但存在多处根本性的实现错误:最严重的是多个form元素使用相同id「wizardForm」导致整个表单系统工作异常;其次是_pattern方法的语法错误会导致JS解析失败;异步验证完全未实现(仅声明了data-async属性但引擎中无对应逻辑);数字范围规则参数解析逻辑混乱。这些错误使代码在浏览器中无法正常运行。音效系统是完成度最高的部分,基本可用。整体代码量达到要求,结构清晰,但关键实现细节错误较多,属于「设计思路正确但实现有根本缺陷」的典型案例,综合完成度约45%。 【GEMINI】代码结构清晰,采用了面向对象的工程化思路,符合高难度表单框架的设计要求。核心亮点在于 Web Audio API 的集成和模块化的验证引擎设计。主要扣分点在于 HTML 结构中 ID 重复导致的选择器冲突,以及部分业务逻辑(如异步验证、富文本处理)的实现深度不足,导致在复杂场景下的鲁棒性有待提升。 【KIMI】该实现是一个功能较为完整的多步骤表单验证系统,采用了 Class 封装和模块化设计思路,UI 视觉效果专业,音效系统和数据持久化功能基本达标。但存在关键功能缺失:异步验证(data-async)完全未实现,这是题目明确要求的核心功能;条件字段的动态验证禁用也未正确处理;多处代码存在潜在 bug(如重复 id、未定义变量)。整体而言,代码结构清晰但细节实现不够严谨,部分高级功能仅停留在属性声明层面而未真正落地。
相关链接
您可以通过以下链接查看更多相关内容: