الدرس التطبيقي حول الترميز الخاص بأفضل الممارسات المتعلّقة بنموذج العناوين

كيف يمكنك تصميم نموذج يعمل بشكل جيد مع مجموعة متنوعة من الأسماء وتنسيقات العناوين؟ الشكل الثانوي تؤدّي الأعطال التقنية إلى إزعاج المستخدمين ويمكن أن تؤدي إلى تركهم لموقعك الإلكتروني أو التوقف عن إكمال عملية شراء. أو الاشتراك.

يعرض لك هذا الدرس التطبيقي حول الترميز كيفية إنشاء نموذج سهل الاستخدام ويمكن الوصول إليه ويعمل بشكل جيد لمعظم المستخدمين.

الخطوة الأولى: الاستفادة إلى أقصى حدّ من عناصر وسمات HTML

ستبدأ في هذا الجزء من الدرس التطبيقي حول الترميز باستخدام نموذج فارغ وعنوان وزر. بأنفسهم. وبعد ذلك ستبدأ في إضافة المدخلات. (تتوفر لغة CSS وقليل من JavaScript included.)

  • انقر على إنشاء ريمكس لتعديل لجعل المشروع قابلاً للتعديل.

  • أضِف حقل اسم إلى عنصر <form> باستخدام الرمز التالي:

<section>
  <label for="name">Name</label>
  <input id="name" name="name">
</section>

قد يبدو ذلك معقدًا ومتكررًا لحقل اسم واحد فقط، ولكنه يفعل كثيرًا.

لقد ربطت label بالسمة input من خلال مطابقة السمة for في label مع السمة. جهاز input الخاص بـ name أو id يؤدي النقر على التصنيف إلى نقل التركيز إلى الإدخال الخاص به، ما يزيد كثيرًا أكثر من الإدخال بمفرده - وهو أمر جيد للأصابع والإبهام ونقرات الماوس! برامج قراءة الشاشة الإعلان عن نص التصنيف عند التركيز على التسمية أو على إدخال التصنيف.

ماذا عن name="name"؟ هذا هو الاسم (الذي يصادف أنه 'name'!) المرتبط بالبيانات من هذا الإدخال الذي يتم إرساله إلى الخادم عند إرسال النموذج. تضمين سمة name تعني أيضًا أنه يمكن الوصول إلى البيانات من هذا العنصر من خلال FormData API.

الخطوة 2: إضافة سمات لمساعدة المستخدمين على إدخال البيانات

ماذا يحدث عند النقر على إدخال الاسم في Chrome؟ من المفترض أن تظهر لك ميزة "الملء التلقائي" الاقتراحات التي خزّنها المتصفح وتخميناتها مناسبة لهذا الإدخال، نظرًا القيمتان name وid

الآن أضف autocomplete="name" إلى رمز الإدخال لكي يظهر على النحو التالي:

<section>
  <label for="name">Name</label>
  <input id="name" name="name" autocomplete="name">
</section>

أعِد تحميل الصفحة في Chrome وانقر على إدخال الاسم. ما هي الاختلافات؟

من المفترض أن تلاحظ تغييرًا طفيفًا: مع autocomplete="name"، أصبحت الاقتراحات الآن محددة القيم التي تم استخدامها سابقًا في مدخلات النماذج التي كانت تحتوي أيضًا على autocomplete="name". المتصفح ليس مجرد تخمين ما قد يكون مناسبًا: بل يمكنك التحكم فيه. سيظهر لك أيضًا قسم إدارة... لعرض وتعديل الأسماء والعناوين التي خزنها متصفحك.

لقطتا شاشة في متصفّح Chrome على هاتف Android تعرضان نموذجًا بإدخال واحد، مع قيمة إكمال تلقائي أو بدونها أحدهما يعرض قيمًا مقترَحة لواجهة مستخدم المتصفّح. والأخرى تعرض واجهة المستخدم عندما تكون هناك قيم مخزنة للإكمال التلقائي.
واجهة مستخدم للملء التلقائي باستخدام القيم المخمّنة، مقابل الإكمال التلقائي

أضف الآن سمات التحقق من القيد maxlength وpattern وrequired بحيث يظهر رمز الإدخال كما يلي:

<section>
  <label for="name">Name</label>
  <input id="name" name="name" autocomplete="name"
    maxlength="100" pattern="[\p{L} \-\.]+" required>
</section>
  • تعني العلامة maxlength="100" أنّ المتصفّح لن يسمح بأي إدخال يزيد طوله عن 100 حرف.

  • تستخدم pattern="[\p{L} \-\.]+" تعبيرًا عاديًا يسمح بأحرف Unicode، الواصلات والنقاط (النقاط الكاملة). وهذا يعني أن الأسماء مثل فاطمة أو جورج لا يتم تصنيفها كـ "غير صالح". هذا لا يحدث إذا استخدمت القيمة \w التي [تسمح فقط بالأحرف من الأبجدية اللاتينية.

  • القيمة "required" مطلوبة. لن يسمح المتصفح بإرسال النموذج بدون بيانات هذا الحقل، وسيتم تحذيره وإبراز الإدخال إذا حاولت إرساله. ما مِن رمز إضافي مطلوب!

لاختبار طريقة عمل النموذج مع هذه السمات أو بدونها، جرِّب إدخال البيانات:

  • جرِّب إدخال قيم لا تتطابق مع سمة pattern.
  • يُرجى محاولة إرسال النموذج باستخدام حقل فارغ. سترى تحذيرًا بشأن وظيفة المتصفح المضمّنة الحقل المطلوب الفارغ وضبط التركيز عليه.

الخطوة 3: إضافة حقل عنوان مرن إلى النموذج

لإضافة حقل عنوان، أضِف الرمز التالي إلى النموذج:

<section>
  <label for="address">Address</label>
  <textarea id="address" name="address" autocomplete="address"
    maxlength="300" required></textarea>
</section>

textarea هي الطريقة الأكثر مرونة لإدخال عناوينهم، وهذه الطريقة رائعة قص ولصق.

يجب تجنب تقسيم نموذج العنوان إلى عناصر مثل اسم الشارع ورقمه إلا إذا التي تحتاج إليها حقًا. لا تجبر المستخدمين على محاولة إدراج عناوينهم في حقول غير منطقية.

الآن عليك إضافة حقول لكل من الرمز البريدي والبلد أو المنطقة. للتبسيط، تم تضمين أول خمسة بلدان فقط هنا. يتم تضمين قائمة كاملة في نموذج العنوان المكتمل.

<section>
  <label for="postal-code">ZIP or postal code (optional)</label>
  <input id="postal-code" name="postal-code"
    autocomplete="postal-code" maxlength="20">
</section>

<section id="country-region">
  <label for="">Country or region</label>
  <select id="country" name="country" autocomplete="country"
    required>
      <option selected value="SPACER"> </option>
      <option value="AF">Afghanistan</option>
      <option value="AX">Åland Islands</option>
      <option value="AL">Albania</option>
      <option value="DZ">Algeria</option>
      <option value="AS">American Samoa</option>
  </select>
</section>

سترى أنّ الرمز البريدي اختياري، وذلك لأنّ العديد من البلدان لا تستخدم الرموز البريدية. يوفّر دليل المصدر العالمي معلومات عن تنسيقات العناوين في 194 بلدًا مختلفًا، بما في ذلك نماذج العناوين). تظهر التسمية البلد أو تُستخدم المنطقة بدلاً من البلد، نظرًا لأن بعض الخيارات من القائمة الكاملة (مثل المملكة المتحدة) ليست بلدانًا فردية (على الرغم من قيمة autocomplete).

الخطوة 4: السماح للعملاء بإدخال عناوين الشحن والفوترة بسهولة

أنشأت نموذج عنوان يعمل بشكل كبير، ولكن ماذا لو كان موقعك الإلكتروني يتطلب أكثر من نموذج واحد عنوانك للشحن والفوترة، على سبيل المثال؟ جرِّب تعديل النموذج ليتمكّن العملاء من الدخول. عنواني الشحن وإرسال الفواتير. كيف يمكنك جعل إدخال البيانات سريعًا وسهلاً قدر الإمكان، خاصةً إذا كان العنوانان متماثلان؟ تشرح المقالة المتوافقة مع هذا الدرس التطبيقي حول الترميز أساليب التعامل مع العناوين المتعددة. مهما فعلت، احرص على استخدام قيم autocomplete الصحيحة.

الخطوة 5: إضافة حقل رقم هاتف

لإضافة إدخال رقم هاتف، أضِف الرمز التالي إلى النموذج:

<section>
  <label for="tel">Telephone</label>
  <input id="tel" name="tel" autocomplete="tel" type="tel"
    maxlength="30" pattern="[\d \-\+]+" enterkeyhint="done"
    required>
</section>

بالنسبة إلى أرقام الهواتف، يمكنك استخدام إدخال واحد: لا تقسم الرقم إلى أجزاء. هذا يسهل على للمستخدمين إدخال البيانات أو نسخها ولصقها، ويجعل عملية التحقق من الصحة أكثر بساطة، ويمكّن المتصفحات من الملء التلقائي.

هناك سمتان يمكنهما تحسين تجربة المستخدم عند إدخال رقم هاتف:

  • يضمن type="tel" حصول مستخدمي الأجهزة الجوّالة على لوحة المفاتيح الصحيحة.
  • يضبط enterkeyhint="done" تصنيف مفتاح Enter في لوحة مفاتيح الأجهزة الجوّالة للإشارة إلى أن هذا هو آخر إدخال. ويمكن الآن إرسال النموذج (الإعداد التلقائي هو next).
لقطتا شاشة لنموذج على نظام Android تعرضان كيف تغيّر سمة إدخال مفتاح Enter رمز زر مفتاح Enter.
استخدِم سمة Enterkeyhint لضبط تصنيف زر Enter: "التالي" و"تم".

من المفترض أن يظهر نموذج العنوان الكامل الآن على النحو التالي:

  • يمكنك تجربة النموذج على أجهزة مختلفة. ما الأجهزة والمتصفحات التي تستهدفها؟ كيف بإمكان تحسين النموذج؟

تتوفّر عدة طرق لاختبار النموذج على أجهزة مختلفة:

التقدم إلى أبعد من ذلك