Advanced — Form Validation

Validate multiple fields together and handle a form submission event.

import { isEmail, isString } from '@andresclua/validate'

const nameInput = document.getElementById('name')
const nameWrapper = document.getElementById('name-wrapper')
const nameError = document.getElementById('name-error')
const emailInput = document.getElementById('email')
const emailWrapper = document.getElementById('email-wrapper')
const emailError = document.getElementById('email-error')

validateBtn.addEventListener('click', () => {
    nameWrapper.classList.remove('c--form-input-a--error', 'c--form-input-a--valid')
    emailWrapper.classList.remove('c--form-input-a--error', 'c--form-input-a--valid')
    nameError.textContent = ''
    emailError.textContent = ''

    const nameResult = isString({ element: nameInput.value, config: { required: true, minLength: 2 } })
    const emailResult = isEmail({ element: emailInput.value, config: { required: true } })

    if (nameResult.isValid) {
        nameWrapper.classList.add('c--form-input-a--valid')
    } else {
        nameWrapper.classList.add('c--form-input-a--error')
        nameError.textContent = nameResult.errorMessage
    }

    if (emailResult.isValid) {
        emailWrapper.classList.add('c--form-input-a--valid')
    } else {
        emailWrapper.classList.add('c--form-input-a--error')
        emailError.textContent = emailResult.errorMessage
    }
})
Playground