0Pricing
HTML Academy · درس

عنصر 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. قوائم Select وoption المنسدلة
  2. عنصر Textarea للإدخال متعدد الأسطر
  3. مجموعات مربعات الاختيار وأزرار الاختيار
  4. عنصر Datalist للإكمال التلقائي
← العودة إلى HTML Academy