Asegurar identificadores de elementos únicos para mapas de UI
A continuación se describe cómo modificar el código de JavaScript para asegurar una representación adecuada de los identificadores de elementos únicos para los mapas de UI.
La modificación solo es necesaria para código que representa HTML usando una función getElementById() (o similar) para generar identificadores de lista y evitar errores de verificación de cuenta u otros relacionados.
El siguiente ejemplo de fragmento contiene las modificaciones necesarias:
...
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;
Puesto que los identificadores no son necesariamente únicos en los identificadores de mapa de UI generados, el código mostrado antes garantiza la exclusividad en tiempo de ejecución añadiendo un carácter de subrayado y un número de fila (por ejemplo, miCampo_1, miCampo_2) para una gestión adecuada por parte del marco en el HTML representado, al tiempo que permite hacer referencia a los identificadores no modificados en el mapa de UI generado.
Un conmutador en el fichero spl.properties también permite desactivar la generación de identificadores únicos para elementos de una cuadrícula (como se describe a continuación), aunque, por motivos de cumplimiento de estándares, se recomienda dejar este conmutador en su valor por defecto.
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.