Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
Question 8 of 10 · DOM Manipulation and Events
Interview question

How do you handle form input events and validate form data in JavaScript? JavaScript में form input events कैसे handle करें और form data validate करें?

Answer

JavaScript listens to input-related events to track and validate user input in real time, before or instead of relying solely on native HTML validation.

EventFires when
inputEvery time the value changes (each keystroke)
changeWhen the value is committed (on blur for text, immediately for select/checkbox)
submitForm is submitted
focus / blurElement gains / loses focus
const emailInput = document.querySelector('#email');
const form = document.querySelector('form');
const errorMsg = document.querySelector('#error');

// Real-time validation on every keystroke
emailInput.addEventListener('input', function(event) {
    const value = event.target.value;
    const isValid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);

    if (!isValid && value.length > 0) {
        errorMsg.textContent = 'Please enter a valid email';
        emailInput.classList.add('invalid');
    } else {
        errorMsg.textContent = '';
        emailInput.classList.remove('invalid');
    }
});

// Full form validation on submit
form.addEventListener('submit', function(event) {
    event.preventDefault();

    const formData = new FormData(form);
    const errors = [];

    if (!formData.get('name')) errors.push('Name is required');
    if (!formData.get('email')) errors.push('Email is required');

    if (errors.length > 0) {
        console.log('Validation errors:', errors);
        return;
    }

    console.log('Form is valid, submitting:', Object.fromEntries(formData));
});

// Using built-in HTML5 validation API
emailInput.addEventListener('input', function() {
    if (emailInput.validity.typeMismatch) {
        emailInput.setCustomValidity('Please enter a valid email address');
    } else {
        emailInput.setCustomValidity('');
    }
});

// Debounced input handler for performance (e.g. live search)
function debounce(fn, delay) {
    let timer;
    return (...args) => {
        clearTimeout(timer);
        timer = setTimeout(() => fn(...args), delay);
    };
}
const searchInput = document.querySelector('#search');
searchInput.addEventListener('input', debounce((event) => {
    console.log('Searching for:', event.target.value);
}, 300));

JavaScript input-related events सुनता है ताकि real time में user input track और validate किया जा सके।

Eventकब fire होता है
inputहर बार value बदलने पर
changeValue commit होने पर
submitForm submit होने पर
const emailInput = document.querySelector('#email');
const form = document.querySelector('form');

// Real-time validation
emailInput.addEventListener('input', function(event) {
    const value = event.target.value;
    const isValid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);

    if (!isValid && value.length > 0) {
        emailInput.classList.add('invalid');
    } else {
        emailInput.classList.remove('invalid');
    }
});

// Submit पर validation
form.addEventListener('submit', function(event) {
    event.preventDefault();
    const formData = new FormData(form);
    const errors = [];

    if (!formData.get('name')) errors.push('Name जरूरी है');

    if (errors.length > 0) {
        console.log('Errors:', errors);
        return;
    }
    console.log('Form valid:', Object.fromEntries(formData));
});

// Debounced input (live search के लिए)
function debounce(fn, delay) {
    let timer;
    return (...args) => {
        clearTimeout(timer);
        timer = setTimeout(() => fn(...args), delay);
    };
}

Was this answer clear?