Bom dia, tenho uma duvida se o evento que estou utilisando é o correto.
Gostaria de a partir de um campo que já vem preenchido ou esconder um painel com uma descrição.
Ou até se possível chamar um modal.
Tenho duas condições pra isso, campo chama tenantid e pode vir com duas informações 02,01 ou 01,00
Tentei esconder o painel utilizando o enableFields porem não deu certo.
Alguém tem um exemplo deste tipo de implementação.
Obrigado.
function enableFields(form) {
// var tenantid = hAPI.getCardValue("tenantid");
if ( form.getFormMode("tenantid") == '02,01' ){
form.setEnabled("pn_x",false);
form.setEnabled("pn_y",true);
}
else {
form.setEnabled("pn_y",true);
form.setEnabled("pn_x",false);
}
}
Oi Danilo,
Eu acho melhor colocar esse tipo de validação no $(document).ready
e tratar a visibilidade do componente via css, pois já tive problema com o método setEnabled
.
O método setEnabled adiciona a classe disabled no componente, ai quando o formulário é enviado para o servidor, as informações não são gravadas por conta dessa classe.
Exemplo:
$(document).ready(
function() {
let campo = $("#id_seu_campo").val();
if(campo == "123")
{
//sua logica
}
}
);
Neste caso Lucas não teria problema pois o campo que estou tentando esconder é um painel, não gravo esta informação em nenhum lugar.
Mas ainda assim é melhor fazer essa validação no javascript da página, como reforçado pelo Alef.
Danilo, a sugestão do Lucas é a recomendável, como se trata de um componente de frontend, o melhor é tratar nele mesmo. Terá que usar de script para desabilitar o painel como um $('#painel').hide() após sua validação. O evento de displayFields também pode ser utilizado para essa questão.
Olá Danilo acredito que se usar $("#id_seu_campo").hide() ou $("#id_seu_campo").toggle('condições') no frontEnd pode ser melhor e mais simples pra você. De acordo com o que o Alef respondeu aee.
No próprio formulário, usando JQuery ou JS puro mesmo, é bem simples, mas se quiser fazer no evento enableFields ou displayFields você precisaria usar o método form.setVisibleById, pois o painel certamente é um div (então não tem como usar disabled nele, pois isso é uma propriedade de campos de formulário).