JS formani tekshirish
Ushbu loyihada siz tasdiqlash bilan shakl qurasiz.
Shakl har bir kiritish maydoni ostida xato xabarlarini ko‘rsatadi va u hamma narsa haqiqiy bo‘lmaguncha yuborilmaydi.
Siz nimani o‘rganasiz
- Shakl maydonlarini JavaScript bilan qanday tekshirish mumkin
- Shaklni yuborishni qanday oldini olish mumkin
- Kiritish maydonlari ostida xato xabarlarini qanday ko‘rsatish
- Elektron pochta va parol qoidalarini qanday tekshirish mumkin
1-qadam - HTML yarating
To‘rtta maydonli va har bir maydon ostida xato xabari bo‘lgan forma yarating.
Misol
<form id="signupForm">
<div class="field">
<label>Name:</label><br>
<input id="name" type="text" placeholder="Your name">
<p id="nameError" class="error"></p>
</div>
<form>
O‘zingiz sinab ko‘ring »
2-qadam — CSS qo‘shing
Misol
<style>
input {
padding: 8px;
width: 260px;
margin-bottom: 4px;
}
.error {
color: red;
margin: 0;
}
.ok {
color: green;
margin: 0;
}
.field {
margin-bottom: 12px;
}
</style>
O‘zingiz sinab ko‘ring »
3-qadam - JavaScript qo‘shish
Har bir maydon uchun obyekt yaratishingiz kerak.
Misol
// Create an Object for each Field
const form = document.getElementById("signupForm");
const nameInput = document.getElementById("name");
const emailInput = document.getElementById("email");
const passInput = document.getElementById("password");
const confirmInput = document.getElementById("confirm");
const nameError = document.getElementById("nameError");
const emailError = document.getElementById("emailError");
const passError = document.getElementById("passwordError");
const confirmError = document.getElementById("confirmError");
const result = document.getElementById("result");
Xatolarni ko‘rsatish uchun funksiya kerak.
Misol
// Function to Display Error
function showError(el, message) {
el.innerHTML = message;
}
Xato maydonini tozalash uchun sizga funksiya kerak.
Misol
// Function to Clear the Error
function clearError(el) {
el.innerHTML = "";
}
Shaklni tekshirish uchun sizga funksiya kerak.
Misol
// Function to Validate Form
function validateForm() {
return false;
}
Shaklni tasdiqlash uchun sizga kod kerak.
Shaklni tasdiqlash uchun sahifani qayta yuklashni to‘xtatishingiz kerak.
Misol
// Prevent Default Reloading
form.addEventListener("submit", function (event) {
event.preventDefault();
// Clear Result
result.innerHTML = "";
// Validate Form
if (validateForm()) {
result.innerHTML = "Form is valid!";
result.className = "ok";
} else {
result.innerHTML = "Please fix the errors.";
result.className = "error";
}
});
O‘zingiz sinab ko‘ring »
4-qadam - maydonlarni tekshirish
Har bir maydon uchun bitta funksiya yarating.
Ismni tekshirish
// Function to Validate Name
function validateName() {
let value = nameInput.value.trim();
if (value.length < 2) {
showError(nameError, "Name must be at least 2 characters.");
return false;
}
clearError(nameError);
return true;
}
// Function to Validate Form
function validateForm() {
let okName = validateName();
return okName;
}
O‘zingiz sinab ko‘ring »
Email’ni tekshirish
// Function to Validate Email
function validateEmail() {
let value = emailInput.value.trim();
if (!(/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value))) {
showError(emailError, "Enter a valid email address.");
return false;
}
clearError(emailError);
return true;
}
// Function to Validate Form
function validateForm() {
let okName = validateName();
let okEmail = validateEmail();
return okName && okEmail;
}
O‘zingiz sinab ko‘ring »
Parolni tekshirish
// Function to Validate Password
function validatePassword() {
let value = passInput.value;
if (value.length < 8) {
showError(passError, "Password must be at least 8 characters.");
return false;
}
clearError(passError);
return true;
}
// Function to Validate Form
function validateForm() {
let okName = validateName();
let okEmail = validateEmail();
let okPass = validatePassword();
return okName && okEmail && okPass;
}
O‘zingiz sinab ko‘ring »
Parol tasdig‘ini tekshirish
// Function to Validate Confirm
function validateConfirm() {
let pass = passInput.value;
let confirm = confirmInput.value;
if (confirm === "") {
showError(confirmError, "Please confirm your password.");
return false;
}
if (confirm !== pass) {
showError(confirmError, "Passwords do not match.");
return false;
}
clearError(confirmError);
return true;
}
// Function to Validate Form
function validateForm() {
let okName = validateName();
let okEmail = validateEmail();
let okPass = validatePassword();
let okConfirm = validateConfirm();
return okName && okEmail && okPass && okConfirm;
}
O‘zingiz sinab ko‘ring »
Formani tekshirish (yakuniy)
Ushbu misol tugallangan loyihani ko‘rsatadi.
The CSS
<style>
input {
padding: 8px;
width: 260px;
margin-bottom: 4px;
}
.error {
color: red;
margin: 0;
}
.ok {
color: green;
margin: 0;
}
.field {
margin-bottom: 12px;
}
</style>
The HTML
<!DOCTYPE html>
<html>
<style>
... CSS goes here
</style>
<body>
<h2>Sign Up</h2>
<form id="signupForm">
<div class="field">
<label>Name:</label><br>
<input id="name" type="text" placeholder="Your name">
<p id="nameError" class="error"></p>
</div>
<div class="field">
<label>Email:</label><br>
<input id="email" type="text" placeholder="name@example.com">
<p id="emailError" class="error"></p>
</div>
<div class="field">
<label>Password:</label><br>
<input id="password" type="password" placeholder="Min 8 characters">
<p id="passwordError" class="error"></p>
</div>
<div class="field">
<label>Confirm Password:</label><br>
<input id="confirm" type="password" placeholder="Repeat password">
<p id="confirmError" class="error"></p>
</div>
<p><button type="submit">Create Account</button></p>
</form>
<p id="result"></p>
<script>
// JavaScript goes here
</script>
</body>
</html>
JavaScript
// Create an Object for each Field
const form = document.getElementById("signupForm");
const nameInput = document.getElementById("name");
const emailInput = document.getElementById("email");
const passInput = document.getElementById("password");
const confirmInput = document.getElementById("confirm");
const nameError = document.getElementById("nameError");
const emailError = document.getElementById("emailError");
const passError = document.getElementById("passwordError");
const confirmError = document.getElementById("confirmError");
const result = document.getElementById("result");
// Function to Display Error
function showError(el, message) {
el.innerHTML = message;
}
// Function to Clear Error
function clearError(el) {
el.innerHTML = "";
}
// Function to Validate Name
function validateName() {
let value = nameInput.value.trim();
if (value.length < 2) {
showError(nameError, "Name must be at least 2 characters.");
return false;
}
clearError(nameError);
return true;
}
// Function to Validate Email
function validateEmail() {
let value = emailInput.value.trim();
if (!(/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value))) {
showError(emailError, "Enter a valid email address.");
return false;
}
clearError(emailError);
return true;
}
// Function to Validate Password
function validatePassword() {
let value = passInput.value;
if (value.length < 8) {
showError(passError, "Password must be at least 8 characters.");
return false;
}
clearError(passError);
return true;
}
// Function to Validate Confirm
function validateConfirm() {
let pass = passInput.value;
let confirm = confirmInput.value;
if (confirm === "") {
showError(confirmError, "Please confirm your password.");
return false;
}
if (confirm !== pass) {
showError(confirmError, "Passwords do not match.");
return false;
}
clearError(confirmError);
return true;
}
// Function to Validate Form
function validateForm() {
let okName = validateName();
let okEmail = validateEmail();
let okPass = validatePassword();
let okConfirm = validateConfirm();
return okName && okEmail && okPass && okConfirm;
}
// Prevent Default Reloading
form.addEventListener("submit", function (event) {
event.preventDefault();
// Clear Result
result.innerHTML = "";
// Validate Form
if (validateForm()) {
result.innerHTML = "Form is valid!";
result.className = "ok";
} else {
result.innerHTML = "Please fix the errors.";
result.className = "error";
}
});
O‘zingiz sinab ko‘ring »
Umumiy xatolar
- Forgetting event.preventDefault()
- Kirish qiymatlarini qisqartirmaslik
- Foydalanuvchi kiritgan ma’lumotlar bilan innerHTML’dan foydalanish (xabarlar uchun faqat matndan foydalaning)
Mashqlar
1-mashq
Parolda kamida bitta raqam bo‘lishi kerak bo‘lgan qoida qo‘shing.
2-mashq
Foydalanuvchi yozayotgan paytda maydonlarni tekshiring (input hodisasidan foydalaning).
3-mashq
Yaroqli maydonlar yonida yashil xabarni ko‘rsating.
Bonus topshiriqlar (darajani oshiring)
- Add password strength indicator (Weak / Medium / Strong)
- Hammasi yaroqli bo‘lguncha yuborish tugmasini o‘chiring
- Show/hide password button
JavaScript loyihalari
- JavaScript Counter LocalStorage-da tiklash va saqlash bilan hisoblagich loyihasi.
- JavaScript hodisa tinglovchisi (Event Listener)
onclick o‘rniga hodisa tinglovchisidan foydalanadigan hisoblagich loyihasi. - JavaScript-to-do ro‘yxati Mahalliy xotirada massivda saqlangan bajariladigan ishlar ro‘yxati.
- JavaScript Modal qalqib chiquvchi oynasi sahifaning yuqori qismida paydo bo‘ladigan modal qalqib chiquvchi oyna.
- JavaScript’da formani tekshirish
Kiritilgan ma’lumotlarni tekshiradigan (validatsiya) HTML forma.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
