Bom dia a todos.
Eu estou fazendo um formulário pensando em otimiza-lo para coletores. Nesse form, eu uso um campo HTML Element para conseguir customizar o campo de entrada de dados. Por conta disso fiz esse JS que chama um procedimento especifico assim que identifica um “ENTER”:
$('body').on('keydown', '*', function(e) {
if (e.key === "Enter" && e.target && ['BUTTON','SUBMIT'].indexOf(e.target.tagName) === -1) {
e.preventDefault(); // bloqueia o comportamento padrão
// aqui chamamos o evento Latromi
latromi.formManager.getFormInstance().raiseFieldEvent('LOGAR', 'Click');
return false;
}
});
Queria modificar esse JS para poder chamar mais que um procedimento já que tenho dois HTML Element nesse relatório, com a possibilidade de criar mais.
Gostaria também de compartilhar esse JS dinâmico que consegui fazer pra armazenar os valores colocados em HTML distintos em variáveis de mesmo nome:
const myForm = (function () {
// Registra os callbacks
latromi.formManager.setOnFormCreatedCallback(onFormCreated);
latromi.formManager.setOnEventFiringCallback(onEventFiring);
latromi.formManager.setOnFieldValueChangedCallback(onFieldValueChanged);
// Lista de campos/variáveis que deseja sincronizar
const campos = [
'USUARIO',
'PLACA'
// adicione mais conforme necessário
];
function onFormCreated(ev) {
syncInputs(ev.form, 'OUT');
}
function onEventFiring(ev1) {
syncInputs(ev1.form, 'IN');
ev1.completeCallback = function(ev2) { syncInputs(ev2.form, 'OUT'); }
}
function onFieldValueChanged(ev) { }
function syncInputs(form, direction) {
campos.forEach(campo => {
const input = document.getElementById(campo);
if (!input) return; // ignora se o elemento não existe
if (direction === 'IN') {
// Passa valor do input → variável
form.setVariableValue(campo, input.value);
} else if (direction === 'OUT') {
// Passa valor da variável → input
input.value = form.getVariableValue(campo) ?? '';
}
});
}
return {};
})();