在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用form-validation-patterns
星标9
分支0
更新时间2026年5月22日 05:45
表单校验的完整实现规范,适用于所有包含表单的页面
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
SKILL.md
readonly菜单
表单校验的完整实现规范,适用于所有包含表单的页面
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
生成完成后,检查代码是否符合基础质量指标
验证生成的页面在 4 个断点下的布局是否正常
生成前主动采集用户提供的参考图片或网页的设计风格,提取配色/布局/字体
API 调用模式最佳实践,包括列表查询、表单提交、数据删除等场景的异步处理规范
CSS 变量与设计 Token 体系规范,确保视觉一致性
微交互与状态反馈规范,包括骨架屏、加载态、空状态、操作动画
| name | form-validation-patterns |
| description | 表单校验的完整实现规范,适用于所有包含表单的页面 |
表单页面、注册/登录、数据提交、配置编辑、多步骤表单
<a-form> + :rules + ref="formRef" 声明式校验required: true,自定义规则用 validatorvalidator 返回 Promisevalidator 内访问 getFieldValueformRef.value.validate() 统一触发全部校验useForm 或 reactive 管理整个表单状态required, type="email", pattern, minlength:invalid / :valid CSS 伪类显示实时反馈setCustomValidity() 覆盖默认错误文案form.checkValidity() + reportValidity() 触发浏览器原生气泡classList.add('error') 控制<template>
<a-form ref="formRef" :model="form" :rules="rules" layout="vertical">
<a-form-item label="邮箱" name="email">
<a-input v-model:value="form.email" />
</a-form-item>
<a-form-item label="密码" name="password">
<a-input-password v-model:value="form.password" />
</a-form-item>
<a-form-item label="确认密码" name="confirm">
<a-input-password v-model:value="form.confirm" />
</a-form-item>
<a-button type="primary" @click="onSubmit">提交</a-button>
</a-form>
</template>
<script setup>
import { reactive, ref } from 'vue'
const formRef = ref()
const form = reactive({ email: '', password: '', confirm: '' })
const rules = {
email: [{ required: true, type: 'email', message: '请输入有效邮箱' }],
password: [{ required: true, min: 6, message: '密码至少6位' }],
confirm: [
{ required: true, message: '请确认密码' },
{
validator: (_, value) =>
value === form.password
? Promise.resolve()
: Promise.reject(new Error('两次密码不一致'))
}
]
}
const onSubmit = async () => {
try {
await formRef.value.validate()
// submit logic
} catch { /* validation failed */ }
}
</script>
<form id="myForm">
<label for="email">邮箱</label>
<input type="email" id="email" required pattern="[^@]+@[^@]+\.[^@]+" />
<span class="error-msg"></span>
<button type="submit">提交</button>
</form>
<script>
document.getElementById('myForm').addEventListener('submit', (e) => {
e.preventDefault()
const form = e.target
if (!form.checkValidity()) {
form.reportValidity()
return
}
// submit logic
})
</script>