{ "$schema": "../../schemas/code-crispies-module-schema.json", "id": "html-datalist", "title": "قائمة البيانات", "description": "قدم اقتراحات لحقول النص بدون JavaScript", "mode": "html", "difficulty": "beginner", "lessons": [ { "id": "datalist-basic", "title": "حقل مع اقتراحات", "description": "عنصر <datalist> يوفر اقتراحات الإكمال التلقائي للحقول. اربطه باستخدام سمة list في الحقل بما يتطابق مع id قائمة البيانات.

يمكن للمستخدمين الكتابة بحرية - الاقتراحات مجرد مساعدات!", "task": "أنشئ محدد متصفح:
1. أضف <label> يقول المتصفح:
2. أضف <input> مع list=\"browsers\"
3. أضف <datalist id=\"browsers\"> مع خيارات Chrome و Firefox و Safari", "previewHTML": "", "previewBaseCSS": "body { font-family: system-ui; padding: 20px; } label { display: block; margin-bottom: 8px; font-weight: 500; } input { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 6px; font-size: 16px; } input:focus { outline: 2px solid #1976d2; border-color: transparent; }", "sandboxCSS": "", "initialCode": "", "solution": "\n\n\n ", "previewContainer": "preview-area", "validations": [ { "type": "element_exists", "value": "datalist", "message": "أضف عنصر <datalist>" }, { "type": "attribute_value", "value": { "selector": "input", "attr": "list", "value": "browsers" }, "message": "اربط الحقل بقائمة البيانات باستخدام list=\"browsers\"" }, { "type": "element_count", "value": { "selector": "option", "min": 3 }, "message": "أضف على الأقل 3 عناصر <option> داخل <datalist>" }, { "type": "element_exists", "value": "label", "message": "أضف <label> للحقل" } ] }, { "id": "datalist-countries", "title": "محدد الدول", "description": "قوائم البيانات تعمل بشكل رائع للقوائم الطويلة مثل الدول. يمكن للمستخدمين الكتابة لتصفية الاقتراحات فوراً.

سمة value هي ما يتم إدخاله، ويمكنك إضافة نص عرض بعدها.", "task": "أنشئ حقل دولة:
1. أضف <label> يقول الدولة:
2. أضف <input> مع list=\"countries\"
3. أضف <datalist id=\"countries\"> مع 4 خيارات دول على الأقل", "previewHTML": "", "previewBaseCSS": "body { font-family: system-ui; padding: 30px; background: linear-gradient(135deg, #e0f7fa 0%, #b2ebf2 100%); min-height: 100vh; margin: 0; box-sizing: border-box; } label { display: block; margin-bottom: 10px; font-weight: 600; color: #00695c; } input { width: 100%; padding: 12px 15px; border: 2px solid #26a69a; border-radius: 8px; font-size: 16px; background: white; } input:focus { outline: none; border-color: #00695c; box-shadow: 0 0 0 3px rgba(38,166,154,0.2); }", "sandboxCSS": "", "initialCode": "", "solution": "\n\n\n ", "previewContainer": "preview-area", "validations": [ { "type": "element_exists", "value": "datalist", "message": "أضف عنصر <datalist>" }, { "type": "attribute_value", "value": { "selector": "datalist", "attr": "id", "value": "countries" }, "message": "عيّن id=\"countries\" في قائمة البيانات" }, { "type": "attribute_value", "value": { "selector": "input", "attr": "list", "value": "countries" }, "message": "اربط الحقل باستخدام list=\"countries\"" }, { "type": "element_count", "value": { "selector": "option", "min": 4 }, "message": "أضف على الأقل 4 خيارات دول" } ] } ] }