Você vai ter duas opções pra seguir. A primeira é usar um campo com o nome padrão que o zoom vai preencher automaticamente, ou fazer isso de forma manual.
Campo padrão
Vai ser necessário uma pequena alteração no seu zoom, adicionando o atributo zoomvalue
com o valor colleagueId
:
<input type="zoom"
name="soli_gestor"
zoomvalue="colleagueId"
data-zoom="{...}">
Além disso, você vai precisar criar um campo com o mesmo nome que campo zoom, porém com o prefixo “hidden_”
<input type="hidden" name="hidden_soli_gestor" id="hidden_soli_gestor">
Ao renderizar, o campo soli_gestor
foi transformado em um select pelo Fluig e armazena o campo que foi configurado no displayKey
do atributo data-zoom
.
Já o campo hidden_soli_gestor
serve para armazenar um código, um cpf, um e-mail, que será usado como identificador único no dataset, neste meu caso, como usei o atributo zoomvalue
com o campo colleagueId
, será armazenado a matrícula do usuário:
Essa explicação inteira foi necessária para a conclusão que já deves ter dito: no mecanismo de atribuição por campo de formulário não vai ser usado o campo soli_gestor
mas sim o hidden_soli_gestor
porque é ele quem armazena a matrícula do usuário.
Forma manual
Outra forma, é trazer o campo colleagueId junto no zoom (porém de forma invisível) e via a implementação do método setSelectedZoomItem
popular um outro campo:
<input type="zoom" class="form-control" id="soli_gestor" name="soli_gestor" data-zoom="
{
'displayKey':'colleagueName',
'datasetId':'colleague',
'fields':[{
'field':'colleagueName',
'label':'colleagueName',
'standard':true
},{
'field':'colleagueId',
'label':'colleagueId',
'visible': 'false'
}]
}">
<input type="hidden" name="soli_gestor_colleagueId" id="soli_gestor_colleagueId">
function setSelectedZoomItem(item) {
if(item.inputId == "soli_gestor") {
$("#soli_gestor_colleagueId").val(item.colleagueId);
}
}