جاري التحميل...
جاري التحميل...
جمع بيانات المستخدم والمدخلات التفاعلية
النماذج هي الطريقة الأساسية لجمع بيانات المستخدم على الويب. في كل مرة تملأ فيها حقل بحث، أو تنشئ حساباً جديداً، أو ترسل رسالة، أو تسجل الدخول — أنت تستخدم نموذج HTML.
بدون النماذج، الويب سيكون محتوى للقراءة فقط بدون أي تفاعل. النماذج هي الجسر الذي يربط المستخدم بالخادم.
💡 تشبيه:
النموذج مثل استمارة ورقية في بنك. لها حقامل تملؤها (الاسم، العنوان، رقم الهوية)، وأزرار لإرسال أو إلغاء. نموذج HTML يفعل نفس الشيء لكن رقمياً.
HTML يوفر أكثر من 20 نوعاً من حقول الإدخال:
text: حقل نصي عاديpassword: حقل كلمة مرور (يُخفي النص)email: حقل بريد إلكتروني (يتحقق من الصيغة)number: حقل أرقام فقطtel: حقل رقم هاتفurl: حقل رابط URLdate: منتقي تاريخtime: منتقي وقتdatetime-local: منتقي تاريخ ووقت معاًcolor: منتقي ألوانfile: رفع ملفاتrange: شريط تمريرcheckbox: مربع اختيارradio: زر اختيار واحدselect: قائمة منسدلةtextarea: منطقة نص متعددة الأسطرhidden: حقل مخفيsubmit: زر إرسالreset: زر إعادة تعيينbutton: زر عاديدعنا نرى كيف نبني نموذج تسجيل دخول كامل:
HTML يوفر خصائص للتحقق من البيانات قبل الإرسال:
required: إجباري - لا يمكن الإرسال بدونهminlength و maxlength: الحد الأدنى والأقصى لطول النصmin و max: الحد الأدنى والأقصى للأرقامpattern: نمط مخصص للتحقق (Regular Expression)💡 ملاحظة:
التحقق من HTML كافي للنماذج البسيطة. للتحقق المتقدم، استخدم JavaScript.
<label> لكل حقل — فهو يربط النص بالحقل للscreen readers.fieldset و legend لتجميع الحقول الم.relatedة.<form> تحيط بالنموذج<label> لكل حقل لإمكانية الوصولأي الحقول يتحقق تلقائياً من صيغة البريد الإلكتروني؟
أي العلامات تُستخدم لتجميع مجموعة من الحقول الم relatedة؟
أنشئ نموذج "اتصل بنا" يتضمن: 1. حقل اسم مطلوب، 2. حقل بريد إلكتروني مطلوب، 3. قائمة منسدلة للموضوع، 4. حقل رسالة متعدد الأسطر، 5. زر إرسال، 6. labels لكل حقل.
الحل:
<form action="/api/comments" method="POST">
<fieldset>
<legend>أضف تعليقاً</legend>
<label for="comment-name">اسمك *</label>
<input type="text" id="comment-name" name="name" required
placeholder="أحمد" minlength="2" />
<label for="comment-email">بريدك الإلكتروني *</label>
<input type="email" id="comment-email" name="email" required
placeholder="ahmed@example.com" />
<label for="comment-text">تعليقك *</label>
<textarea id="comment-text" name="comment" required
rows="5" minlength="10" maxlength="500"
placeholder="اكتب تعليقك هنا..."></textarea>
<label>
<input type="checkbox" name="terms" value="accepted" required />
أوافق على شروط التعليق *
</label>
<button type="submit">إرسال التعليق</button>
<button type="reset">مسح</button>
</fieldset>
</form>أنشئ نموذج تقديم فريق يتضمن:
<fieldset><textarea> لخطاب التقديم مع minlengthacceptrequired💡 استخدم <code><fieldset></code> و<code><legend></code> لتجميع كل قسم، وتأكد من أن كل حقل له <code><label></code> بـ <code>for</code> يطابق الـ <code>id</code>.
النموذج وأنواع الإدخال:
<!-- نموذج أساسي -->
<form action="/url" method="POST">
...
</form>
<!-- أنواع الإدخال -->
<input type="text" name="x" />
<input type="email" name="x" />
<input type="password" name="x" />
<input type="number" name="x" />
<input type="tel" name="x" />
<input type="url" name="x" />
<input type="date" name="x" />
<input type="color" name="x" />
<input type="range" name="x" />
<input type="file" name="x" />
<input type="hidden" name="x" />
<!-- منطقة النص -->
<textarea name="msg" rows="5"></textarea>التحقق والتجميع:
<!-- تسمية (إلزامية) -->
<label for="id">التسمية</label>
<input type="text" id="id" name="n" />
<!-- التحقق -->
<input required minlength="3"
maxlength="50" />
<input type="number" min="0"
max="100" />
<input pattern="[A-Za-z]{3}" />
<!-- قائمة منسدلة -->
<select name="x">
<option value="1">واحد</option>
</select>
<!-- مجموعة حقول -->
<fieldset>
<legend>العنوان</legend>
<!-- الحقول -->
</fieldset>الخصائص الأساسية:
name - مطلوب لإرسال النموذجrequired - الحقل إجباريplaceholder - نص تلميحيminlength / maxlength - حدود طول النصmin / max - حدود نطاق الأرقامpattern - تحقق بنمط منتظمautocomplete - تلميحملء تلقائي