Form Inputs عناصر التحكم في النماذج

آخر تحديث: 2026-11-03

Form Inputs عناصر التحكم في النماذج

الحقول النصية ومربعات الاختيار والقوائم المنسدلة وحقول النص متعدد الأسطر تشترك جميعها في منطق value أو checked مع onChange في React، لكنها تقرأ قيمتها من مواضع مختلفة: تقرأ حقول النص من e.target.value، بينما يقرأ مربع الاختيار من e.target.checked. وإتقان هذا الفرق وحده يكفي لتغطية كل حقل نموذج ستصنعه. وبعد أن يملك كل عنصر تحكّم جزءاً واحداً من الحالة، تصير التحقّق والتعطيل والعرض الشرطي كلها مشتقّات مباشرة من تلك الحالة بدل ركام من الشروط المتفرقة.

المجموعةأنماط المكونات
النوعنمط

ℹ️ ملاحظة يحوّل المحرّر JSX إلى JavaScript ويعرض الواجهة الحقيقية داخل بيئة معزولة؛ تُركَّب المكوّنات تلقائياً دون استدعاء render يدوي.

📝 الصيغة

<input value={text} onChange={e => setText(e.target.value)} />
<input type="checkbox" checked={ok} onChange={e => setOk(e.target.checked)} />
<select value={city} onChange={e => setCity(e.target.value)}>…</select>

القيمة المرجعة:لا قيمة معادة؛ فهذه المدخلات تصف نمط برمجة لا دالة.

▶ مثال

المثال يعمل مباشرة: يُعرض تلقائياً عند التوسيع وتظهر التعديلات فوراً.

الناتج:

توضّح عناصر التحكم الثلاثة النمط الخاضع للرقابة للنص ومربع الاختيار والقائمة المنسدلة؛ ويجمع السطر في الأسفل كل قيم النموذج الحالية لحظياً.

💡 النقاط الأساسية

💡 نصيحة مربع الاختيار أو زر الراديو يقرأ e.target.checked بدل value — وهذا أكثر خطأ في قراءة القيمة يقع فيه المبتدئون.
ℹ️ ملاحظة في React يُخاض حقل النص متعدد الأسطر عبر خاصية value، لا بوضع النص داخل الوسم كما تفعل HTML.
⚠️ تحذير يحتاج التحديد المتعدد إلى الخاصية multiple، ويجب أن يمرّ onChange على e.target.selectedOptions لجمع القيم المحدّدة.
المزيد من الحالات قريباً.

📚 دروس ذات صلة

❓ الأسئلة الشائعة

س لماذا يقرأ مربع الاختيار checked بدل value؟
ج إدخال المستخدم في مربع الاختيار هو حالة منطقية «محدَّد أم لا»، وهي تقابل سمة checked في DOM؛ أما value فهي قيمة عرضية تُحمل معه فقط.
س كيف أكتب حقل نص متعدد الأسطر في React؟
ج تماماً كالحقل النصي، مع value و onChange: value={text}، ودون أي نص فرعي بنمط HTML.
س كيف أقرأ التحديد المتعدد؟
ج أضف multiple إلى الوسم select، ثم اجمع مصفوفة في onChange عبر Array.from(e.target.selectedOptions, o => o.value).
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%