Przydzielanie unikatowych ID elementów w odwzorowaniach interfejsu użytkownika

Poniżej opisano, jak należy zmodyfikować kod JavaScript, aby zapewnić właściwe tworzenie unikatowych ID elementów w odwzorowaniach interfejsu użytkownika.

Ta modyfikacja jest wymagana tylko w kodzie tworzącym kod HTML za pomocą funkcji getElementById() (lub podobnej), w celu uzyskania ID listy i uniknięcia błędów dotyczących weryfikacji konta lub powiązanych błędów.

Poniższy przykładowy snippet zawiera wymagane modyfikacje:


...
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;

Ponieważ generowane ID odwzorowania interfejsu użytkownika nie muszą być unikatowe, pokazany powyżej kod zapewni ich unikatowość podczas pracy przez dodanie znaku podkreślenia i numeru wiersza (np. mojePole_1, mojePole_2) w celu ich poprawnego obsłużenia przez framework w utworzonym kodzie HTML, przy jednoczesnym pozostawieniu użytkownikowi możliwości odwoływania się do niezmodyfikowanych ID zawartych w wygenerowanym odwzorowaniu interfejsu użytkownika.

Przełącznik w pliku spl.properties umożliwia wyłączenie generowania unikatowych ID elementów w siatce (zgodnie z opisem poniżej), jednak z powodu zachowania zgodności ze standardami zdecydowanie zaleca się pozostawienie wartości domyślnej tego przełącznika.

 
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.