غياب type لا يعني أن كل زر يرسل نموذجا في كل سياق. عند قراءة HTML بمساعد ذكي، يحتاج الشرح إلى نوع الزر والنموذج المرتبط والاستثناءات التي يعرفها المعيار الحالي. نؤلف بطاقات عناصر دون فتح نموذج أو الضغط على زر، ونفصل عقد العنصر عن واقعة إرسال نجحت.
الخلاصة السريعة
القيمة المفقودة أو غير الصالحة تعني Auto؛ يصبح الزر زر إرسال إذا غابت command و commandfor ولم يكن الأب select، أو عند النوع submit الصريح. [1] يلزم النموذج المرتبط في مثالنا، ولا يثبت التصنيف نجاح طلب.
- ينص المعيار الحالي على Auto عند غياب النوع أو عدم صلاحيته، مع استثناء command و commandfor والأب select من فرعه المحدد للإرسال. [1] لا نعمم افتراضا قديما على كل سياق.
- في ورقتنا ثلاثة أزرار لها النموذج نفسه، دون أوامر أو أب select: غياب النوع يصنف زر إرسال، و submit صريح كذلك، و button لا يملك فعل الإرسال الافتراضي.
- يمكن ربط الزر بالنموذج عبر form؛ والنوع button بلا سلوك افتراضي، مع إمكانية إضافة استماع برمجي. [1][2] لا نساوي الاسم الظاهر بالنوع أو بغياب كل فعل.
- تصنيف زر إرسال لا يثبت أن طلبا أرسل أو قُبل؛ لم نضغط زرا، وما زالت نتيجة الإجراء تحتاج سجلها الفعلي.
ما القاعدة الحالية للنوع الغائب؟
يسمي معيار HTML النوع المفقود أو غير الصالح Auto. ويعده زر إرسال إذا غابت command و commandfor ولم يكن أبوه select؛ كما يعد النوع submit الصريح زر إرسال. [1]
هذا أدق من عبارة «كل button بلا type يرسل». نحتفظ بالشروط حين يطلب المساعد شرح صفحة، ولا نقرأ اسم العنصر ثم نخفي سياقه. نعلن في مثالنا أن الزر غير معطل وله نموذج مرتبط، ولا نقدم شيفرة تعالج حدثه.
نحدد هل يفسر التقرير عقدا أم يسرد تشغيل واجهة. قد تكون المادة مخطط عنصر لم يدرج في صفحة بعد؛ لذلك لا نسمي التصنيف فعلا حدث.
كيف نقارن ثلاثة أزرار؟
نؤلف أزرارا أ وب وج، كلها مرتبطة بالنموذج ف، دون command أو commandfor، وأبها ليس select. لا يحمل أ نوعا، ويحمل ب submit، ويحمل ج button. تحت شروط الورقة، أ وب زرا إرسال؛ أما ج فليس زر إرسال افتراضيا.
نضع على الثلاثة العبارة الظاهرة نفسها «متابعة». لا يغير ذلك تصنيفها في مثالنا؛ الاسم المرئي لا يحل محل type. ولا نعلن أن أحدها حفظ حجزا لمجرد عبارة مطمئنة.
هذه مقارنة عقود، لا ثلاث محاولات إرسال. إذا غاب سياق أحد الأزرار، لا ننقله آليا إلى صف أ في الجدول.
| الزر المؤلف | type | التصنيف تحت الشروط |
|---|---|---|
| أ | غير موجود | زر إرسال |
| ب | submit | زر إرسال |
| ج | button | دون إرسال افتراضي |
هل غياب السلوك الافتراضي يمنع كل فعل؟
يمكن أن تربط form الزر بنموذجه صراحة، ويصف المعيار النوع button بأنه بلا فعل افتراضي. وتذكر MDN إمكان إضافة مستمع برمجي له. [1][2]
إذن عبارة «هذا الزر لا يعمل شيئا مطلقا» أقوى مما تسمح به بطاقة النوع وحدها. في ورقتنا لم نرفق مستمعا، فلا نخترع حدثا؛ لكن في صفحة أخرى نحتاج قراءة ما ربطته الشيفرة بالزر قبل وصف النتيجة.
النموذج المرتبط مفهوم يحتاج بياناته، لا افتراض أنه دائما أقرب صندوق مرئي. نثبت المعرف ف في التمرين كيلا يتغير موضوع المقارنة خفية.
كيف نتجنب خبر نجاح غير موثق؟
يمكن للمساعد القول إن أ مصنف زر إرسال وفق الشروط. لا تقفز ورقتنا إلى أنه أرسل بيانات صحيحة أو أن خدمة قبلتها؛ ليس لدينا ضغط فعلي أو رد أو سجل نتيجة.
لو طلب القارئ شرح إخفاق خدمة، فهذه البطاقات لا تشخصه. ما توضحه هو فرق نوعين وسياق Auto، لا صحة الحقول أو حالة الخادم. نحتفظ بهذا الحد حتى عندما تتطابق الأسماء الظاهرة.
لم نشغل HTML أو ننقر واجهة. يذكر الملخص النوع والنموذج والاستثناءات والسلوك البرمجي إن قدم فعلا، ثم يفصل التصنيف عن تنفيذ الإجراء ونتيجته.
المصادر ومتابعة القراءة
- WHATWG HTML: button (يفتح في نافذة جديدة)html.spec.whatwg.org
- MDN: button (يفتح في نافذة جديدة)developer.mozilla.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
