نماذج HTML

النماذج (<form>) هي الطريقة الأساسية التي تتفاعل بها صفحات الويب مع المستخدمين — تسجيل الدخول والتسجيل والبحث ورسائل الاتصال جميعها تعتمد على النماذج لجمع البيانات.

أساسيات النموذج

الوسم <form> يحدد منطقة نموذج تحتوي على عناصر تحكم إدخال متنوعة. عندما يملأ المستخدمون النموذج ويُرسلونه، تُرسل البيانات إلى الخادم:

مثال

HTML
<form action="/submit" method="post">
<label>اسم المستخدم: <input type="text" name="username"></label>
<label>كلمة المرور: <input type="password" name="password"></label>
<button type="submit">تسجيل الدخول</button>
</form>
▶ جرّب الكود

عناصر التحكم الشائعة في الإدخال

<input> هو عنصر التحكم الأكثر تنوعًا — سمة type الخاصة به تحوله إلى أشكال إدخال مختلفة:

HTML
<!-- إدخال نص -->
### مثال
<input type="text" placeholder="أدخل اسمك">

<!-- بريد إلكتروني -->
<input type="email" placeholder="you@example.com">

<!-- رقم -->
<input type="number" min="1" max="100">

<!-- أزرار اختيار -->
<input type="radio" name="gender" value="male"> ذكر
<input type="radio" name="gender" value="female"> أنثى

<!-- خانة اختيار -->
<input type="checkbox" name="hobby" value="coding"> برمجة

<!-- قائمة منسدلة -->
<select>
<option>اختر مدينة</option>
<option>القاهرة</option>
<option>لندن</option>
</select>

<!-- منطقة نصية -->
<textarea rows="4" placeholder="أدخل رسالتك..."></textarea>
💡 سمات النموذج: action يحدد عنوان URL للإرسال؛ method يحدد طريقة الطلب (get للبحث، post لتسجيل الدخول/التسجيل). placeholder يعرض تلميحات الإدخال؛ required يحدد الحقول الإجبارية.

تجميع النموذج والمزيد من العناصر

<fieldset> يجمع عناصر التحكم ذات الصلة، <legend> يوفر عنوانًا للمجموعة. <datalist> يقدم قائمة اقتراحات مسبقة لحقول الإدخال:

HTML
<form>
<fieldset>
### مثال
<legend>معلومات شخصية</legend>
<label>الاسم: <input type="text" name="name" list="names"></label>

<label>الجنس:
<input type="radio" name="gender" value="male"> ذكر
<input type="radio" name="gender" value="female"> أنثى
</label>
</fieldset>

<datalist id="names">
<option value="أحمد">
<option value="سارة">
<option value="خالد">
</datalist>

<button type="submit">إرسال</button>
<button type="reset">إعادة تعيين</button>
<button type="button" onclick="alert('لقد نقرت علي!')">زر عادي</button>
</form>

❓ أسئلة شائعة

س ما هي سمات action و method في وسم <form>؟
ج action يحدد عنوان URL للخادم الذي تُرسل إليه بيانات النموذج؛ method يحدد كيفية الإرسال. طريقتان: GET يلحق البيانات بالعنوان URL (مناسب لاستعلامات البحث)، POST يضع البيانات في جسم الطلب (مناسب لتسجيل الدخول والتسجيل والبيانات الحساسة). إذا لم يكن لديك خادم للمعالجة، احذف action واستخدم event.preventDefault() من JavaScript لاعتراض الإرسال.
س ما الفرق بين radio (اختيار واحد) و checkbox (اختيار متعدد)؟
ج radio هو اختيار واحد — خيار واحد فقط لكل مجموعة (مجمعة بواسطة سمة namecheckbox هو اختيار متعدد — يمكنك تحديد عدة خيارات في نفس الوقت. نقطة رئيسية: يجب أن يشارك radio نفس قيمة name ليكون متنافيًا؛ أسماء checkbox يمكن أن تكون متماثلة أو مختلفة. كلاهما يستخدم checked لتعيين الاختيار الافتراضي.
س ماذا تفعل سمة type على <button>؟
ج type يحدد سلوك الزر: submit (افتراضي) يرسل النموذج إلى عنوان URL action؛ reset يمسح جميع مدخلات النموذج؛ button ليس له سلوك افتراضي — تحتاج إلى JavaScript لربط الأحداث. ملاحظة: بدون type، الافتراضي هو submit، مما قد يرسل النموذج عن طريق الخطأ. حدد دائمًا type صراحة.
س هل تحقق صحة النموذج في HTML5 كافٍ؟ هل أحتاج إلى JavaScript؟
ج يوفر HTML5 تحققًا أساسيًا (required، minlength، pattern، إلخ) للسيناريوهات البسيطة. لكن لديه قيود: 1) تنسيق رسالة الخطأصعب التخصيص؛ 2) التحقق المعقد (مثل تطابق كلمات المرور) غير ممكن؛ 3) تجربة المستخدم ليست جيدة (توقيت، عدم اتساق الأسلوب). التوصية: استخدم تحقق HTML5 للحماية الأساسية، JavaScript للتحقق المحسن وتجربة مستخدم أفضل.

📖 ملخص

📝 تمارين

  1. نموذج تسجيل: أنشئ صفحة تسجيل باسم المستخدم والبريد الإلكتروني وكلمة المرور وتأكيد كلمة المرور والجنس (radio) والاهتمامات (checkbox) وزر إرسال وزر إعادة تعيين. استخدم <fieldset> للتجميع.
  2. اقتراحات الإدخال: استخدم <datalist> لإنشاء إدخال "اختيار مدينة" يقترح تلقائيًا القاهرة ولندن وطوكيو وسيدني أثناء الكتابة.
100%