0Pricing
HTML Academy · درس

مجموعات مربعات الاختيار وأزرار الاختيار

السماح للمستخدمين باختيار خيار واحد أو عدة خيارات من مجموعة

مجموعات مربعات الاختيار وأزرار الاختيار درس مجاني في HTML Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في HTML Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة HTML Academy 4 دروس في المجموع.

مربعات الاختيار

تتيح مربعات الاختيار للمستخدمين تحديد صفر أو خيار واحد أو عدة خيارات:

<label>
  <input type="checkbox" name="terms" value="agreed"> I agree to the Terms
</label>

<!-- Each checkbox is independent -->
<!-- checked attribute = pre-checked -->
<input type="checkbox" name="newsletter" value="yes" checked>

إرسال مربع الاختيار

لا تُرسل مربعات الاختيار إلا عند تحديدها:

<form>
  <input type="checkbox" name="hobby" value="reading"> Reading<br>
  <input type="checkbox" name="hobby" value="coding"> Coding<br>
  <input type="checkbox" name="hobby" value="gaming"> Gaming<br>
</form>
<!-- If reading and coding are checked:
     hobby=reading&hobby=coding -->
<!-- Unchecked boxes send nothing -->

مجموعات مربعات الاختيار باستخدام fieldset

جمّع مربعات الاختيار المرتبطة باستخدام fieldset + legend:

<fieldset>
  <legend>Select your interests</legend>

  <label><input type="checkbox" name="interest" value="html"> HTML</label>
  <label><input type="checkbox" name="interest" value="css"> CSS</label>
  <label><input type="checkbox" name="interest" value="js"> JavaScript</label>
  <label><input type="checkbox" name="interest" value="python"> Python</label>
</fieldset>

أزرار الاختيار

تتيح أزرار الاختيار للمستخدمين اختيار خيار واحد فقط من مجموعة:

<fieldset>
  <legend>Preferred plan</legend>

  <label><input type="radio" name="plan" value="free"> Free</label>
  <label><input type="radio" name="plan" value="pro"> Pro</label>
  <label><input type="radio" name="plan" value="enterprise"> Enterprise</label>
</fieldset>
<!-- All radios in a group share the same name attribute -->
<!-- Selecting one deselects the others -->

السمة checked

حدّد زر اختيار أو مربع اختيار مسبقًا باستخدام السمة checked:

<fieldset>
  <legend>Skill level</legend>
  <label><input type="radio" name="level" value="beginner" checked> Beginner</label>
  <label><input type="radio" name="level" value="intermediate"> Intermediate</label>
  <label><input type="radio" name="level" value="advanced"> Advanced</label>
</fieldset>

تنسيق مربعات الاختيار وأزرار الاختيار

مربعات اختيار مخصّصة التنسيق باستخدام حيلة label:

<label class="custom-check">
  <input type="checkbox" name="agree">
  <span class="checkmark"></span>
  I agree
</label>

/* Hide native input, style the span: */
.custom-check input { opacity: 0; width: 0; }
.checkmark {
  width: 1.25rem; height: 1.25rem;
  border: 2px solid #ddd; border-radius: 3px;
  display: inline-block; vertical-align: middle;
}
.custom-check input:checked + .checkmark { background: #0070f3; }

حالة indeterminate

يمكن أن تكون لمربعات الاختيار حالة indeterminate، أي لا تكون محددة ولا غير محددة:

<input type="checkbox" id="select-all">

<script>
// Set via JavaScript only -- no HTML attribute
document.getElementById('select-all').indeterminate = true;
// Visually shown as a dash (−) in most browsers
// Used for "select all" when some children are checked
</script>

radio دون تحديد افتراضي

من الأفضل أحيانًا عدم تحديد زر اختيار مسبقًا:

  • يوحي التحديد المسبق بأن الخيار موصى به
  • بالنسبة إلى الاختيارات المطلوبة التي لا تملك قيمة افتراضية واضحة، مثل الجنس والخطة، اتركها غير محددة
  • أضف required لضمان اتخاذ المستخدم اختيارًا صريحًا
<fieldset>
  <legend>Gender</legend>
  <label><input type="radio" name="gender" value="m" required> Male</label>
  <label><input type="radio" name="gender" value="f" required> Female</label>
  <label><input type="radio" name="gender" value="nb" required> Non-binary</label>
  <label><input type="radio" name="gender" value="prefer_not" required> Prefer not to say</label>
</fieldset>

مربع الاختيار: checked مقابل value

هناك أمران مهمان بشأن إرسال مربع الاختيار:

<!-- The value sent when checked: -->
<input type="checkbox" name="subscribe" value="yes">
<!-- Submits: subscribe=yes when checked -->
<!-- If value is omitted, default value is 'on' -->

<!-- JavaScript checked state: -->
const cb = document.querySelector('input[name="subscribe"]');
console.log(cb.checked);    // true or false
console.log(cb.value);      // 'yes' (always, even when unchecked)

التنقل بلوحة المفاتيح في مجموعات أزرار الاختيار

سلوك لوحة المفاتيح في مجموعات أزرار الاختيار:

  • ينقل Tab التركيز إلى الزر المحدد أو أول زر في المجموعة
  • تتنقل مفاتيح الأسهم (↑/↓ أو ←/→) بين الخيارات
  • ينقل Tab التركيز خارج المجموعة إلى العنصر التالي القابل للتركيز

نمط تحديد الكل

نمط تحديد جميع مربعات الاختيار أو إلغاء تحديدها:

<label>
  <input type="checkbox" id="select-all"> Select all
</label>
<fieldset id="items">
  <label><input type="checkbox" class="item" value="1"> Item 1</label>
  <label><input type="checkbox" class="item" value="2"> Item 2</label>
  <label><input type="checkbox" class="item" value="3"> Item 3</label>
</fieldset>
<script>
document.getElementById('select-all').addEventListener('change', function() {
  document.querySelectorAll('.item').forEach(cb => cb.checked = this.checked);
});
</script>

اختبار سريع

ما قاعدة السمة name التي تجعل أزرار الاختيار تنتمي إلى المجموعة نفسها؟

مراجعة: مربعات الاختيار وأزرار الاختيار

أساسيات مربعات الاختيار وأزرار الاختيار:

  • مربع الاختيار — يتيح تحديد عدة خيارات؛ ولا يُرسل إلا عند تحديده
  • زر الاختيار — يتيح تحديد خيار واحد فقط؛ وتُجمع الأزرار حسب name
  • يستخدم كلاهما السمة checked للتحديد المسبق
  • ضعهما داخل <fieldset> + <legend>
  • تتنقل مفاتيح الأسهم داخل مجموعة أزرار الاختيار

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

هل درس «مجموعات مربعات الاختيار وأزرار الاختيار» مجاني؟

نعم — نص درس «مجموعات مربعات الاختيار وأزرار الاختيار» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة HTML Academy، انتقل إلى CoddyKit PRO. تتضمن دورة HTML Academy 4 دروس في المجموع.

ماذا ستتعلم في «مجموعات مربعات الاختيار وأزرار الاختيار»؟

السماح للمستخدمين باختيار خيار واحد أو عدة خيارات من مجموعة تتمرن على HTML Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ HTML Academy؟

لا تُشترط خبرة سابقة. HTML Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «مجموعات مربعات الاختيار وأزرار الاختيار»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس HTML Academy هذا؟

نعم. كل درس في HTML Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

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

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