Saturday, June 26, 2021

Form validation

 <-- KIRTISHIL PATIL -->

 <!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Simple HTML Form</title>

</head>

<body>

<form name="contactForm" onsubmit="return validateForm()" action="practise.php" method="post">

    <h2>Application Form</h2>

    <div class="row">

        <label>Full Name</label>

        <input type="text" name="name">

        <div class="error" id="nameErr"></div>

    </div>

    <div class="row">

        <label>Email Address</label>

        <input type="text" name="email">

        <div class="error" id="emailErr"></div>

    </div>

    <div class="row">

        <label>Mobile Number</label>

        <input type="text" name="mobile" maxlength="10">

        <div class="error" id="mobileErr"></div>

    </div>

    <div class="row">

        <label>Country</label>

        <select name="country">

            <option>Select</option>

            <option>Australia</option>

            <option>India</option>

            <option>United States</option>

            <option>United Kingdom</option>

        </select> 

        <div class="error" id="countryErr"></div>

    </div>

    <div class="row">

        <label>Gender</label>

        <div class="form-inline">

            <label><input type="radio" name="gender" value="male"> Male</label>

            <label><input type="radio" name="gender" value="female"> Female</label> 

        </div>

        <div class="error" id="genderErr"></div>

    </div>


    <div class="row">

        <label>Hobbies <i>(Optional)</i></label>

        <div class="form-inline">

            <label><input type="checkbox" name="hobbies[]" value="sports"> Sports</label>

            <label><input type="checkbox" name="hobbies[]" value="movies"> Movies</label>

            <label><input type="checkbox" name="hobbies[]" value="music"> Music</label>  

        </div>

    </div>        

    <div class="row">

        <input type="submit" value="Submit">

    </div>

</form>

<script>

function printError(elemId, hintMsg) {

    document.getElementById(elemId).innerHTML = hintMsg;

}

// Defining a function to validate form 

function validateForm() {

    // Retrieving the values of form elements 

    var name = document.contactForm.name.value;

    var email = document.contactForm.email.value;

    var mobile = document.contactForm.mobile.value;

    var country = document.contactForm.country.value;

    var gender = document.contactForm.gender.value;

    var hobbies = [];

    var checkboxes = document.getElementsByName("hobbies[]");

    for(var i=0; i < checkboxes.length; i++) {

        if(checkboxes[i].checked) {

            // Populate hobbies array with selected values

            hobbies.push(checkboxes[i].value);

        }

    }

    // Defining error variables with a default value

    var nameErr = emailErr = mobileErr = countryErr = genderErr = true;

        // Validate name

    if(name == "") {

        printError("nameErr", "Please enter your name");

    } else {

        var regex = /^[a-zA-Z\s]+$/;                

        if(regex.test(name) === false) {

            printError("nameErr", "Please enter a valid name");

        } else {

            printError("nameErr", "");

            nameErr = false;

        }

    }

        // Validate email address

    if(email == "") {

        printError("emailErr", "Please enter your email address");

    } else {

        // Regular expression for basic email validation

        var regex = /^\S+@\S+\.\S+$/;

        if(regex.test(email) === false) {

            printError("emailErr", "Please enter a valid email address");

        } else{

            printError("emailErr", "");

            emailErr = false;

        }

    }

        // Validate mobile number

    if(mobile == "") {

        printError("mobileErr", "Please enter your mobile number");

    } else {

        var regex = /^[1-9]\d{9}$/;

        if(regex.test(mobile) === false) {

            printError("mobileErr", "Please enter a valid 10 digit mobile number");

        } else{

            printError("mobileErr", "");

            mobileErr = false;

        }

    }

        // Validate country

    if(country == "Select") 

        printError("countryErr", "Please select your country");

    } else {

        printError("countryErr", "");

        countryErr = false;

    }

    // Validate gender

    if(gender == "") {

        printError("genderErr", "Please select your gender");

    } else {

        printError("genderErr", "");

        genderErr = false;

    }

    // Prevent the form from being submitted if there are any errors

    if((nameErr || emailErr || mobileErr || countryErr || genderErr) == true) {

       return false;

    } else {

        // Creating a string from input data for preview

        var dataPreview = "You've entered the following details: \n" +

                          "Full Name: " + name + "\n" +

                          "Email Address: " + email + "\n" +

                          "Mobile Number: " + mobile + "\n" +

                          "Country: " + country + "\n" +

                          "Gender: " + gender + "\n";

        if(hobbies.length) {

            dataPreview += "Hobbies: " + hobbies.join(", ");

        }

        // Display input data in a dialog box before submitting the form

        alert(dataPreview);

    }

};

</script>

</body>

</html>

No comments:

Post a Comment

Kirtishil Patil