form-validator
Implement client-side form validation. Automatically loads when adding form validation, handling form errors, or improving form UX.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Implement client-side form validation. Automatically loads when adding form validation, handling form errors, or improving form UX.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Generates comprehensive code documentation following JSDoc standards. Use when writing documentation, adding docstrings, or documenting APIs.
Comprehensive code review following NovaTech standards. Use when reviewing pull requests, auditing code quality, or preparing code for production deployment.
Check HTML pages for accessibility issues and WCAG 2.1 compliance. Automatically loads when working on HTML accessibility, ARIA labels, or screen reader compatibility.
| name | form-validator |
| description | Implement client-side form validation. Automatically loads when adding form validation, handling form errors, or improving form UX. |
| allowed-tools | ["Read","Write","Edit","Grep"] |
This skill provides patterns for implementing robust client-side form validation.
const EMAIL_PATTERN = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
function isValidEmail(email) {
return EMAIL_PATTERN.test(email);
}
const PHONE_PATTERN = /^[\d\s\-+()]{10,}$/;
function isValidPhone(phone) {
return PHONE_PATTERN.test(phone);
}
function isRequired(value) {
return value.trim().length > 0;
}
<div class="form-group">
<label for="email" class="form-label">
Email <span class="required">*</span>
</label>
<input
type="email"
id="email"
name="email"
class="form-input"
required
aria-describedby="email-error"
>
<span class="form-error" id="email-error" role="alert"></span>
</div>
function showError(field, message) {
const errorEl = document.getElementById(`${field.id}-error`);
field.classList.add('is-invalid');
if (errorEl) {
errorEl.textContent = message;
}
}
function clearError(field) {
const errorEl = document.getElementById(`${field.id}-error`);
field.classList.remove('is-invalid');
if (errorEl) {
errorEl.textContent = '';
}
}
field.addEventListener('blur', () => {
if (field.hasAttribute('required') || field.value) {
validateField(field);
}
});
form.addEventListener('submit', (event) => {
event.preventDefault();
const result = validateForm(form);
if (!result.isValid) {
const firstInvalid = form.querySelector('.is-invalid');
if (firstInvalid) firstInvalid.focus();
return;
}
submitForm(form);
});
| Validation | Bad | Good |
|---|---|---|
| Required | "Error" | "This field is required" |
| "Invalid" | "Please enter a valid email address" | |
| Min length | "Too short" | "Please enter at least 10 characters" |
aria-describedby to link inputs to error messagesrole="alert" on error containers