فرم ها یکی از اجزای اساسی وب سایت ها هستند که به کاربران امکان می دهند اطلاعات خود را وارد کرده و با سایت تعامل داشته باشند. JavaScript به شما این امکان را می دهد که فرم های خود را پویا و تعاملی تر کنید. در این آموزش، به شما نشان خواهیم داد که چگونه با استفاده از JavaScript، فرم های ساده و کارآمد ایجاد کنید.
HTML ساختار اصلی فرم را فراهم می کند، اما JavaScript به آن جان می بخشد. با JavaScript می توانید:
ابتدا باید ساختار HTML فرم خود را ایجاد کنید. به عنوان مثال، یک فرم ساده با فیلدهای نام، ایمیل و پیام:
<form id="myForm">
<label for="name">نام:</label><br>
<input type="text" id="name" name="name"><br><br>
<label for="email">ایمیل:</label><br>
<input type="email" id="email" name="email"><br><br>
<label for="message">پیام:</label><br>
<textarea id="message" name="message"></textarea><br><br>
<button type="submit">ارسال</button>
</form>
<p id="result"></p>
حال باید JavaScript را به فرم خود اضافه کنیم تا داده ها را اعتبارسنجی کند. برای مثال، بررسی می کنیم که فیلد نام خالی نباشد و ایمیل معتبر باشد:
<script>
document.getElementById("myForm").addEventListener("submit", function(event) {
event.preventDefault(); // جلوگیری از ارسال پیش فرض فرم
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
var message = document.getElementById("message").value;
var result = document.getElementById("result");
if (name === "") {
result.textContent = "لطفاً نام خود را وارد کنید.";
result.style.color = "red";
return;
}
if (email === "") {
result.textContent = "لطفاً ایمیل خود را وارد کنید.";
result.style.color = "red";
return;
}
// اعتبارسنجی ایمیل با استفاده از یک عبارت منظم
var emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;
if (!emailRegex.test(email)) {
result.textContent = "ایمیل نامعتبر است.";
result.style.color = "red";
return;
}
// اگر همه چیز درست بود
result.textContent = "فرم با موفقیت ارسال شد!";
result.style.color = "green";
// در اینجا می توانید کد ارسال داده به سرور را اضافه کنید
});
</script>
بعد از اعتبارسنجی، می توانید داده ها را به سرور ارسال کنید. برای این کار معمولاً از AJAX استفاده می شود. مثال:
<script>
document.getElementById("myForm").addEventListener("submit", function(event) {
event.preventDefault(); // جلوگیری از ارسال پیش فرض فرم
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
var message = document.getElementById("message").value;
var result = document.getElementById("result");
if (name === "") {
result.textContent = "لطفاً نام خود را وارد کنید.";
result.style.color = "red";
return;
}
if (email === "") {
result.textContent = "لطفاً ایمیل خود را وارد کنید.";
result.style.color = "red";
return;
}
// اعتبارسنجی ایمیل با استفاده از یک عبارت منظم
var emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;
if (!emailRegex.test(email)) {
result.textContent = "ایمیل نامعتبر است.";
result.style.color = "red";
return;
}
var xhr = new XMLHttpRequest();
xhr.open("POST", "your-server-endpoint", true); // جایگزین کنید
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onload = function() {
if (xhr.status === 200) {
result.textContent = "فرم با موفقیت ارسال شد!";
result.style.color = "green";
} else {
result.textContent = "خطا در ارسال فرم.";
result.style.color = "red";
}
};
xhr.send(JSON.stringify({name:name,email:email,message:message}));
});
</script>
توجه داشته باشید که باید `your-server-endpoint` را با آدرس واقعی سرور خود جایگزین کنید و منطق سمت سرور را برای پردازش داده ها پیاده سازی کنید.
می توانید از تگ های <span> یا <div> جداگانه برای نمایش پیام های خطا برای هر فیلد استفاده کنید و با استفاده از JavaScript، محتوای آن ها را تغییر دهید.
بله، jQuery و سایر کتابخانه ها می توانند کار با فرم ها را ساده تر کنند، اما برای درک بهتر اصول اولیه، توصیه می شود ابتدا با JavaScript خالص کار کنید.
از HTTPS برای رمزگذاری داده ها در حین انتقال استفاده کنید و همیشه داده های ورودی را در سمت سرور اعتبارسنجی و فیلتر کنید تا از حملات امنیتی مانند XSS و SQL Injection جلوگیری کنید.
ساخت فرم های زیبا و کارآمد تنها بخشی از یک وب سایت موفق است. اگر به دنبال بهبود سئو سایت خود و جذب مخاطبان بیشتر هستید، با ما تماس بگیرید! ما با ارائه خدمات سئو حرفه ای و توسعه وب سایت های مدرن، به شما کمک می کنیم تا به اهداف خود برسید.
با ما تماس بگیرید: 09190994063 - 09376846692