عنصر Textarea للإدخال متعدد الأسطر
جمع نص متعدد الأسطر باستخدام عنصر textarea
عنصر Textarea للإدخال متعدد الأسطر درس مجاني في HTML Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في HTML Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة HTML Academy 4 دروس في المجموع.
عنصر textarea
يقبل عنصر <textarea> إدخال نص متعدد الأسطر:
<label for="message">Message</label>
<textarea
id="message"
name="message"
rows="5"
cols="40"
placeholder="Enter your message here..."
></textarea>
<!-- textarea is NOT a void element -- it has a closing tag -->
<!-- Default content goes between the tags, not in a value attribute -->سمتا rows وcols
تحددان rows وcols الحجم المرئي الأولي:
<!-- rows: height in lines (default: 2) -->
<!-- cols: width in characters (default: 20) -->
<textarea rows="6" cols="50">...</textarea>
<!-- Better: use CSS for sizing -->
<textarea style="width: 100%; height: 150px; resize: vertical;">تعيين المحتوى الافتراضي
يوضع النص الافتراضي بين وسمَي الفتح والإغلاق:
<textarea name="bio">
Hello! I am a developer who loves HTML.
</textarea>
<!-- Note: whitespace inside textarea IS rendered -->
<!-- The newline after the opening tag will appear in the textarea -->
<!-- Avoid whitespace between tags if you don't want it -->تغيير الحجم باستخدام CSS
تحكم في إمكانية تغيير المستخدم للحجم باستخدام خاصية CSS resize:
textarea {
resize: vertical; /* allow only vertical resize */
/* resize: horizontal -- only horizontal */
/* resize: both -- both directions (default) */
/* resize: none -- prevent resizing */
width: 100%;
min-height: 120px;
max-height: 400px;
padding: 0.5rem;
box-sizing: border-box;
}textarea يتمدد تلقائيًا
اجعل textarea يتمدد أثناء كتابة المستخدم باستخدام JavaScript:
<textarea id="auto-grow" rows="3" style="overflow: hidden;"></textarea>
<script>
const ta = document.getElementById('auto-grow');
ta.addEventListener('input', () => {
ta.style.height = 'auto';
ta.style.height = ta.scrollHeight + 'px';
});
</script>maxlength وminlength
حدّد طول النص في textarea:
<label for="bio">Bio (max 500 characters)</label>
<textarea
id="bio"
name="bio"
maxlength="500"
minlength="10"
rows="4"
></textarea>
<!-- Live character count: -->
<small id="char-count">0/500</small>
<script>
document.getElementById('bio').addEventListener('input', function() {
document.getElementById('char-count').textContent =
this.value.length + '/500';
});
</script>السمة spellcheck
تتحكم السمة spellcheck في التدقيق الإملائي:
<!-- Enable (default for textarea) -->
<textarea spellcheck="true">...</textarea>
<!-- Disable (for code editors, technical input) -->
<textarea spellcheck="false">...</textarea>السمة wrap
تتحكم السمة wrap في كيفية إرسال التفاف الأسطر:
<!-- wrap="soft" (default): text wraps visually but newlines not added -->
<textarea wrap="soft">...</textarea>
<!-- wrap="hard": newlines inserted at wrap points when submitted -->
<!-- Requires cols to be set -->
<textarea wrap="hard" cols="40">...</textarea>readonly وdisabled
اجعل textarea غير قابل للتحرير:
<!-- readonly: visible, selectable, submitted -->
<textarea readonly>This is read-only text.</textarea>
<!-- disabled: cannot interact, not submitted -->
<textarea disabled>Disabled textarea.</textarea>إتاحة textarea
ملاحظات حول إتاحة عناصر textarea:
- اربط دائمًا عنصر
<label>باستخدامfor/id - استخدم
aria-describedbyلربط نص المساعدة أو عدادات الأحرف - أعلن تغيّرات حد الأحرف لقارئات الشاشة باستخدام المناطق الحية
<label for="comment">Comment</label>
<textarea id="comment" aria-describedby="comment-hint"></textarea>
<p id="comment-hint">Maximum 200 characters.</p>تنسيق Textarea
تنسيقات textarea الشائعة:
textarea {
width: 100%;
padding: 0.75rem;
border: 1px solid #ddd;
border-radius: 0.375rem;
font-family: inherit; /* match surrounding font */
font-size: 1rem;
line-height: 1.5;
resize: vertical;
min-height: 100px;
box-sizing: border-box;
transition: border-color 0.2s;
}
textarea:focus {
outline: none;
border-color: #0070f3;
box-shadow: 0 0 0 3px rgba(0,112,243,0.2);
}اختبار سريع
كيف تعيّن نصًا مُعبّأ مسبقًا في textarea؟
مراجعة: Textarea
أساسيات Textarea:
- إدخال نص متعدد الأسطر مع وسم إغلاق
- يوضع المحتوى الافتراضي بين وسمَي الفتح والإغلاق، وليس في السمة value
- تحددان
rowsوcolsالحجم الأولي؛ ويُفضّل استخدام CSS - تتحكم
maxlengthوminlengthفي الطول - استخدم
resize: verticalفي CSS للتحكم في تغيير الحجم - التمدد التلقائي: عيّن
height: scrollHeightعند وقوع حدث input
الأسئلة الشائعة
هل درس «عنصر Textarea للإدخال متعدد الأسطر» مجاني؟
نعم — نص درس «عنصر Textarea للإدخال متعدد الأسطر» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة HTML Academy، انتقل إلى CoddyKit PRO. تتضمن دورة HTML Academy 4 دروس في المجموع.
ماذا ستتعلم في «عنصر Textarea للإدخال متعدد الأسطر»؟
جمع نص متعدد الأسطر باستخدام عنصر textarea تتمرن على HTML Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ HTML Academy؟
لا تُشترط خبرة سابقة. HTML Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «عنصر Textarea للإدخال متعدد الأسطر»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس HTML Academy هذا؟
نعم. كل درس في HTML Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- قوائم Select وoption المنسدلة
- عنصر Textarea للإدخال متعدد الأسطر
- مجموعات مربعات الاختيار وأزرار الاختيار
- عنصر Datalist للإكمال التلقائي