In the previous chapter, you learned the basics of HTML5 forms, including text fields, email fields, password fields, radio buttons, checkboxes, dropdown lists, textareas, and submit buttons.
In this chapter, you’ll learn advanced HTML5 form controls that are commonly used in modern websites. These controls improve user experience by providing built-in validation, specialized input methods, and better compatibility with mobile devices. HTML5 Advanced Forms practice questions with solutions help to understand the concepts.
Advanced HTML5 forms are widely used in:
- Online registration systems
- E-commerce websites
- Job application portals
- Banking websites
- Appointment booking systems
- School and college admission forms
- Travel booking websites
Why Learn Advanced HTML5 Forms?
Advanced HTML5 form controls help you:
- Improve user experience.
- Reduce validation errors.
- Collect data more accurately.
- Make forms mobile-friendly.
- Use built-in browser validation.
- Create professional web forms.
Common Advanced HTML5 Input Types
| Input Type | Purpose |
|---|---|
date | Select a date |
time | Select time |
month | Select month and year |
week | Select a week |
color | Color picker |
range | Slider input |
file | Upload files |
url | Website URL |
search | Search box |
hidden | Hidden field |
1. Create a Date Input Field
Problem Statement
Create a form that allows users to select their Date of Birth.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Date Input Example</title>
</head>
<body>
<h1>Select Date of Birth</h1>
<form>
<label>Date of Birth</label>
<input
type="date"
required>
</form>
</body>
</html>
Expected Output
Select Date of Birth
Date of Birth
[ 📅 ]
Clicking the field opens the browser’s built-in calendar.
Explanation
The type="date" input displays a calendar picker, making it easier for users to select a valid date instead of typing it manually.
It is commonly used for:
- Date of Birth
- Booking Dates
- Event Registration
- Appointment Scheduling
Concepts Covered
type="date"- Calendar Picker
- HTML5 Forms
2. Create a Time Input Field
Problem Statement
Create a form that allows users to select an appointment time.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Time Input</title>
</head>
<body>
<h1>Appointment Time</h1>
<form>
<label>Select Time</label>
<input
type="time"
required>
</form>
</body>
</html>
Expected Output
Appointment Time
Select Time
[ ⏰ ]
Explanation
The type="time" input provides a built-in time selector.
It is useful for:
- Meeting bookings
- Appointment scheduling
- Class timings
- Event management
Concepts Covered
type="time"- Time Picker
- HTML5 Forms
3. Create a Month Input Field
Problem Statement
Create a form that allows users to select their joining month.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Month Input</title>
</head>
<body>
<h1>Select Joining Month</h1>
<form>
<label>Joining Month</label>
<input
type="month">
</form>
</body>
</html>
Expected Output
Select Joining Month
Joining Month
[ Month / Year ]
Explanation
The type="month" input allows users to select only the month and year.
It is commonly used for:
- Joining Month
- Billing Period
- Subscription Cycle
- Financial Reports
Concepts Covered
type="month"- Month Picker
- HTML5 Forms
4. Create a Week Input Field
Problem Statement
Create a form that allows users to select a particular week of the year.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Week Input Example</title>
</head>
<body>
<h1>Select Week</h1>
<form>
<label>Choose Week</label>
<input
type="week"
required>
</form>
</body>
</html>
Expected Output
Select Week
Choose Week
[ Week / Year ]
Explanation
The type="week" input allows users to select a specific week of a year.
Common uses include:
- Weekly reports
- Attendance systems
- Project planning
- Weekly schedules
Concepts Covered
type="week"- Week Picker
- HTML5 Forms
5. Create a Color Picker
Problem Statement
Create a form that allows users to choose their favorite color.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Color Picker</title>
</head>
<body>
<h1>Choose Color</h1>
<form>
<label>Select Color</label>
<input
type="color">
</form>
</body>
</html>
Expected Output
Choose Color
Select Color
[ 🎨 ]
Clicking the color box opens the browser’s color picker.
Explanation
The type="color" input opens a built-in color selection dialog.
It is commonly used in:
- Theme customization
- Graphic design tools
- Branding settings
- Website customization panels
Concepts Covered
type="color"- Color Picker
- HTML5 Forms
6. Create a Range Slider
Problem Statement
Create a volume control slider ranging from 0 to 100.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Range Slider</title>
</head>
<body>
<h1>Volume Control</h1>
<form>
<label>Volume</label>
<input
type="range"
min="0"
max="100"
value="50">
</form>
</body>
</html>
Expected Output
Volume
----------------O--------------
The slider starts at 50.
Explanation
The type="range" input creates a slider for selecting numeric values within a specified range.
Common uses include:
- Volume control
- Brightness adjustment
- Ratings
- Price filters
Concepts Covered
type="range"- Slider Input
- HTML5 Forms
7. Create a File Upload Form
Problem Statement
Create a form that allows users to upload a profile picture.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>File Upload</title>
</head>
<body>
<h1>Upload Profile Picture</h1>
<form>
<label>Select File</label>
<input
type="file">
</form>
</body>
</html>
Expected Output
Upload Profile Picture
Select File
[ Choose File ]
Explanation
The type="file" input allows users to upload files from their device.
Common examples:
- Resume upload
- Profile photo
- Assignment submission
- Documents
- Images
Concepts Covered
type="file"- File Upload
- HTML5 Forms
8. Create a Website URL Input Field
Problem Statement
Create a form that accepts a website URL.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Website URL</title>
</head>
<body>
<h1>Website Information</h1>
<form>
<label>Website URL</label>
<input
type="url"
placeholder="https://example.com"
required>
</form>
</body>
</html>
Expected Output
Website Information
Website URL
[ https://example.com ]
Explanation
The type="url" input validates website addresses entered by the user.
It is commonly used in:
- Portfolio forms
- Business websites
- Company registration
- Social profile links
Browsers can check whether the entered value follows a valid URL format.
Concepts Covered
type="url"- URL Validation
- HTML5 Forms
9. Create a Search Input Field
Problem Statement
Create a search box that allows users to search for products.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Search Input</title>
</head>
<body>
<h1>Search Products</h1>
<form>
<label>Search</label>
<input
type="search"
placeholder="Search products...">
</form>
</body>
</html>
Expected Output
Search Products
Search
[ Search products... ]
Explanation
The type="search" input is designed specifically for search boxes.
It behaves like a normal text field but may provide additional browser features such as a clear (✖) button on supported browsers.
It is commonly used in:
- E-commerce websites
- Blog search
- News portals
- Documentation websites
Concepts Covered
type="search"- Search Forms
- HTML5 Input Types
10. Create a Hidden Input Field
Problem Statement
Create a form that contains a hidden user ID.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Hidden Input</title>
</head>
<body>
<h1>User Form</h1>
<form>
<input
type="hidden"
value="1001">
<label>Name</label>
<input type="text">
</form>
</body>
</html>
Expected Output
User Form
Name
[____________]
The hidden field is not visible to the user.
Explanation
The type="hidden" input stores information that is sent with the form but is not displayed on the webpage.
Common uses include:
- User ID
- Session ID
- Product ID
- Order ID
- Security Tokens
Concepts Covered
type="hidden"- Hidden Form Data
- HTML5 Forms
11. Use the readonly Attribute
Problem Statement
Create a form where the username is visible but cannot be edited.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Readonly Input</title>
</head>
<body>
<h1>User Profile</h1>
<form>
<label>Username</label>
<input
type="text"
value="Rishabh123"
readonly>
</form>
</body>
</html>
Expected Output
User Profile
Username
[Rishabh123]
The value is visible but cannot be modified.
Explanation
The readonly attribute allows users to view the value but prevents editing.
Common uses include:
- Username
- Customer ID
- Invoice Number
- Registration Number
Concepts Covered
readonly- Read-only Fields
- HTML5 Forms
12. Use the disabled Attribute
Problem Statement
Create a disabled email input field.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Disabled Input</title>
</head>
<body>
<h1>Account Information</h1>
<form>
<label>Email</label>
<input
type="email"
value="user@example.com"
disabled>
</form>
</body>
</html>
Expected Output
Account Information
Email
[user@example.com]
The field appears disabled and cannot be edited or submitted.
Explanation
The disabled attribute completely disables an input field.
Unlike readonly, disabled fields:
- Cannot be edited
- Cannot receive focus
- Are not submitted with the form
Concepts Covered
disabled- Disabled Controls
- HTML5 Forms
13. Use the autofocus and autocomplete Attributes
Problem Statement
Create a login form where:
- The username field receives focus automatically.
- Browser autocomplete is enabled.
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Autofocus Example</title>
</head>
<body>
<h1>Login</h1>
<form autocomplete="on">
<label>Username</label>
<input
type="text"
autofocus>
<br><br>
<label>Password</label>
<input
type="password">
</form>
</body>
</html>
Expected Output
Login
Username
[Cursor automatically appears here]
Password
[********]
Explanation
autofocus
Automatically places the cursor inside the input field when the page loads.
autocomplete
Allows the browser to remember previously entered values and suggest them when the user types.
These attributes improve usability and make forms faster to complete.
Concepts Covered
HTML5 Forms
autofocus
autocomplete
User Experience
14. Build a Complete Job Application Form
Problem Statement
Create a professional job application form that collects the following details:
- Full Name
- Email Address
- Mobile Number
- Date of Birth
- Gender
- Position Applying For
- Years of Experience
- Resume Upload
- Portfolio Website
- Expected Salary
- Submit Button
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Job Application Form</title>
</head>
<body>
<h1>Job Application Form</h1>
<form>
<label>Full Name</label>
<input
type="text"
placeholder="Enter full name"
required>
<br><br>
<label>Email</label>
<input
type="email"
placeholder="Enter email"
required>
<br><br>
<label>Mobile Number</label>
<input
type="tel"
placeholder="Enter mobile number"
required>
<br><br>
<label>Date of Birth</label>
<input
type="date">
<br><br>
<label>Gender</label>
<input type="radio" name="gender"> Male
<input type="radio" name="gender"> Female
<input type="radio" name="gender"> Other
<br><br>
<label>Position</label>
<select>
<option>Frontend Developer</option>
<option>Backend Developer</option>
<option>UI/UX Designer</option>
<option>Data Analyst</option>
</select>
<br><br>
<label>Experience (Years)</label>
<input
type="number"
min="0"
max="30">
<br><br>
<label>Resume</label>
<input
type="file">
<br><br>
<label>Portfolio Website</label>
<input
type="url"
placeholder="https://yourportfolio.com">
<br><br>
<label>Expected Salary</label>
<input
type="number"
placeholder="Enter expected salary">
<br><br>
<input
type="submit"
value="Apply Now">
</form>
</body>
</html>
Expected Output
Job Application Form
Full Name
[________________]
Email
[________________]
Mobile Number
[________________]
Date of Birth
[📅]
Gender
( ) Male
( ) Female
( ) Other
Position
[Frontend Developer ▼]
Experience
[__]
Resume
[Choose File]
Portfolio Website
[https://yourportfolio.com]
Expected Salary [________] [ Apply Now ]
Explanation
This project combines multiple HTML5 input types into a professional job application form.
It demonstrates:
- Text fields
- Date picker
- Radio buttons
- Dropdown lists
- Number inputs
- File upload
- URL input
- Submit button
Such forms are widely used on recruitment portals and company career pages.
Concepts Covered
- Job Application Forms
- File Upload
- URL Input
- HTML5 Advanced Forms
15. Build a Professional Online Admission Form
Problem Statement
Create an online admission form for a training institute that collects:
- Student Name
- Phone Number
- Date of Birth
- Preferred Course
- Preferred Batch Time
- Profile Photo
- Address
- Submit Button
- Reset Button
HTML Solution
<!DOCTYPE html>
<html>
<head>
<title>Online Admission Form</title>
</head>
<body>
<h1>Online Admission Form</h1>
<form>
<label>Student Name</label>
<input
type="text"
required>
<br><br>
<label>Email</label>
<input
type="email"
required>
<br><br>
<label>Phone Number</label>
<input
type="tel"
required>
<br><br>
<label>Date of Birth</label>
<input
type="date">
<br><br>
<label>Preferred Course</label>
<select>
<option>HTML5</option>
<option>CSS3</option>
<option>JavaScript</option>
<option>Python</option>
<option>Data Analytics</option>
</select>
<br><br>
<label>Preferred Batch Time</label>
<input
type="time">
<br><br>
<label>Profile Photo</label>
<input
type="file">
<br><br>
<label>Address</label>
<br>
<textarea
rows="5"
cols="40"></textarea>
<br><br>
<input
type="submit"
value="Submit Admission Form">
<input
type="reset"
value="Clear Form">
</form>
</body>
</html>
Expected Output
Online Admission Form
Student Name
[________________]
Email
[________________]
Phone Number
[________________]
Date of Birth
[📅]
Preferred Course
[HTML5 ▼]
Preferred Batch Time
[⏰]
Profile Photo
[Choose File]
Address
------------------------
| |
| |
------------------------
[ Submit Admission Form ]
[ Clear Form ]
Explanation
This project demonstrates how multiple HTML5 form elements work together in a realistic admission form.
It includes:
- Date picker
- Time picker
- File upload
- Dropdown list
- Textarea
- Submit button
- Reset button
This layout is commonly used by schools, colleges, universities, and training institutes.
Concepts Covered
- Admission Form
- HTML5 Advanced Forms
- Multiple Input Types
- Real-world Form Design
Coding Challenge
Build a Professional Employee Registration Form that includes:
- Employee ID
- Full Name
- Phone Number
- Department
- Date of Joining
- Profile Picture Upload
- Salary
- Office Location
- Resume Upload
- Skills (Checkboxes)
- Gender (Radio Buttons)
- Address
- Submit Button
- Reset Button
Try creating the complete form using only HTML5 before referring to the solution.
Chapter Summary
In this chapter, you learned how to build advanced HTML5 forms using modern input types and attributes. These features make forms more user-friendly, reduce manual validation, and improve the overall experience on both desktop and mobile devices.
You practiced creating:
- Date picker
- Time picker
- Month picker
- Week picker
- Color picker
- Range slider
- File upload field
- URL input field
- Search input field
- Hidden input field
- Read-only input field
- Disabled input field
- Autofocus attribute
- Autocomplete attribute
- Professional Job Application Form
- Professional Online Admission Form
These controls are widely used in modern websites, web applications, dashboards, CRM systems, HR portals, educational platforms, and e-commerce websites.
Key Takeaways
type="date"creates a calendar picker.type="time"allows users to select time.type="month"lets users choose a month and year.type="week"is useful for weekly schedules.type="color"opens a color picker.type="range"creates a slider.type="file"allows users to upload files.type="url"validates website URLs.type="search"is optimized for search boxes.type="hidden"stores invisible form data.readonlydisplays values without allowing edits.disabledprevents editing and excludes the field from form submission.autofocusautomatically places the cursor in an input field.autocompletehelps browsers remember previously entered information.
Frequently Asked Questions (FAQs)
1. What is the purpose of type="date"?
The date input displays a built-in calendar that helps users select a valid date.
Example:
<input type="date">
It is commonly used for birthdays, appointments, bookings, and registrations.
2. What is the difference between readonly and disabled?
| Readonly | Disabled |
|---|---|
| Value can be seen | Value can be seen |
| Cannot be edited | Cannot be edited |
| Submitted with the form | Not submitted with the form |
Example:
<input
type="text"
value="ABC123"
readonly>
<input
type="text"
value="XYZ789"
disabled>
3. Why do we use type="file"?
The file input allows users to upload documents or images from their device.
Example:
<input type="file">
Common uses include:
- Resume upload
- Profile photo
- Assignment submission
- Identity documents
4. What is the purpose of the range input?
The range input creates a slider for selecting numeric values.
Example:
<input
type="range"
min="0"
max="100">
Typical uses:
- Volume control
- Brightness
- Ratings
- Price filters
5. Why should we use autocomplete?
The autocomplete attribute allows browsers to remember previously entered values and suggest them to users.
Example:
<form autocomplete="on">
<input type="email">
</form>
This speeds up form completion and improves usability.
6. What is the purpose of autofocus?
The autofocus attribute automatically places the cursor inside an input field when the page loads.
Example:
<input
type="text"
autofocus>
It is commonly used on login and search pages.
7. What is type="url" used for?
The URL input validates website addresses entered by users.
Example:
<input
type="url"
placeholder="https://example.com">
It is commonly used for:
- Portfolio links
- Company websites
- Social media profiles
8. What are the advantages of HTML5 advanced form controls?
HTML5 advanced form controls:
- Improve user experience
- Reduce typing mistakes
- Provide built-in validation
- Work well on mobile devices
- Reduce the need for JavaScript validation
- Make forms more professional
Written by Shubhranshu Shekhar, who has trained 20000+ students in coding.
