Problema
A partir da versão 3.5.526 do Latromi Web, o atributo for dos elementos do tipo label do Formulário, deixaram de apontar para o elemento input e passaram a apontar para elemento div.fieldWrapper
Essa mudança acidental, além de gerar problemas de retro compatibilidade em rotinas personalizadas, está semanticamente errada.
Veja a definição do atributo for neste link.
Solução
A Plataforma deve ser alterada para que o atributo for das label’s aponte para o elemento input ou outro elemento de formulário associado ao campo do Latromi (ex: select, number, date, upload, check). Quando não houve um elemento de formulário associado, o atributo for não deve ser especificado.
Paliativamente, nos casos onde esse comportamento estiver quebrando um código personalizado existente, adicione o código abaixo no JavaScript Público da Plataforma:
// Este script tem o objetivo apontar a referência das labels dos
// forms para os campos "input", preservando a retrocompatibilidade
latromi.formManager.setOnFormCreatedCallback(function (ev) {
Object.keys(ev.form.fields).forEach(fieldName => {
const fieldData = ev.form.getFieldData(fieldName);
// Obtém o elemento "wrapper" de cada campo
const wrapper = document.getElementById(fieldData.wrapperClientId);
if (!wrapper) return;
// Procura uma label, dentro do "wrapper", que esteja referenciando o próprio "wrapper"
const label = wrapper.querySelector('label[for="'+wrapper.id+'"]');
if (!label) return;
// Ajusta a referência da label, apontando para o input correspondente
label.htmlFor = fieldData.clientId;
//
console.log('Atributo "for" da Label do campo "' + fieldData.labelText + '" ajustado');
});
});
