Escondendo Painel, de acordo com campo

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).