ضمان معرفات عناصر فريدة لمخططات واجهات المستخدم

يوضح القسم التالي كيفية تعديل تعليمات Javascript البرمجية لضمان عرض معرفات العناصر الفريدة لمخططات واجهات المستخدم على نحو سليم.

التعديل مطلوب فقط للتعليمية البرمجية التي تعرض HTML باستخدام وظيفة getElementById() (أو وظيفة مشابهة) لإنشاء معرفات القائمة وتجنب التحقق من الحساب أو الأخطاء المرتبطة به.

يحتوي مقطع العينة التالية على التعديلات الضرورية:


...
function getElementsFromList(namePrefix) {
    var ret = [];
    var elements = document.getElementsByTagName("INPUT");
    for(var i=0;i<elements.length;i++) {
        var elemID = elements[i].id;
        if((id) && (id.startsWith(namePrefix + '_')) {
            ret.push(elements[i]);
        }
    }
...
return ret;

ونظرًا لأنه ليس من الضروري أن تكون المعرفات فريدة في معرفات مخططات واجهة المستخدمة المنشأة، تضمن التعليمة البرمجية الموضحة بالأعلى التفرد في وقت التشغيل عن طريق إلحاق شرطة سفلية ورقم الصف (مثل، myField_​1، myField_​2) لضمان سلامة المعالجة من جانب إطار العمل في عرض HTML، في حين لا يزال بإمكانك الإشارة إلى المعرفات غير المعدلة التي يتم تضمينها في مخطط واجهة المستخدم المنشأ.

ويتيح لك أحد المفاتيح في ملف spl.properties إمكانية تعطيل إنشاء المعرفات الفريدة للعناصر في شبكة ما (كما هو موضح بالأسفل)، ولكن لدواعي الالتزام بالمعايير، يوصى بشدة ترك هذا المفتاح بالقيمة الافتراضية المعين عليها.

 
Property Name: spl.runtime.compatibility.uiMapDisableGenerateUniqueHtmlIDs
File Name: spl.properties (under web project in FW)
Default Value: false
Accepted Values: true or false
Description: This property controls the generation of unique IDs for all input elements inside 
a list. When this value is set to true it disables the generation of unique IDs, thus 
replicating the old behavior. When this property is set to false or this property is missing 
it enables the generation of unique IDs, thus enabling the list to be standards-compliant.