CheckBox em formulário

Boa tarde, Alguém sabe me informar como eu faço para utilizar um checkbox em formulários fluig? Verifiquei que ele não está gravando se está marcado ou não o checkbox e também não sei como verificar se está marcado ou não no evento validateForm.

Obrigado!

@Kanaãm, no formulário você pode construí-lo normalmente:


 <input type="checkbox" name="nomecheckbox" value="x" />

Importante dizer que cada checkbox vai criar uma coluna no dataset.

Para você fazer a verificação nos eventos do formulário (validateFields/displayFields/etc), utilize o padrão comum de verificação. Um exemplo que fazemos aqui no validateFields:


if(form.getValue('nomecheckbox') == null || form.getValue('nomecheckbox') == '')

   throw "Selecione o checkbox";

Se quiser verificar o uso em eventos de processo, este link lhe dará uma boa base:

http://tdn.totvs.com/display/public/fluig/hAPI

Boa tarde Gabriel, cheguei a testar dessa forma, porém não deu certo.
Ele não está trazendo se o checkbox está marcado ou desmarcado.
Acabei partindo para outra solução.
No caso não estou utilizando eventos de processo, é um form de conteúdo de widgets.
De qualquer forma obrigado pelo retorno!

Complementando a resposta do Gabriel: se você possível vários inputs do tipo checkbox no seu formulário eles precisam ter o mesmo “name”. Se você precisar manipular algo quando eles são selecionados, pode trabalhar com o ID deles.

Boa tarde Kanaãn

Já passei por um problema desses, e no caso a solução que encontrei foi criar um campo hide e adicionar uma função click no checkbox, quando o usuário clicar no checkbox eu passaria o valor 1 para o campo hide, se desmarcasse inseria 0

espero ter ajudado,

Abraço

Obrigado pelo retorno William!
Pensei em fazer algo nesse sentido, mas acabei fazendo um zoom com um dataset “chumbado”.
Valeu!!

É só usar o mesmo name para todos os checkbox. Se precisar manipular algo ou recuperar valor é só usar o ID deles. Sempre uso assim e não tenho problemas. Abs!

Bom dia. Estou com situação envolvendo checkbox tambem. To colocando anexo uma imagem do formulario. Ele carrega a ultima data gravada no dataset, ok ? ta vindo certo ja essa parte. Se eu clicar no checkbox correspondente, ele precisa pegar a data atual como nova data de verificação e calcula com base no campo cDiasVenc do item o novo vencimento.

Só que o fonte da função nao esta fazendo isso. O clicar no checkbox nao esta executando a função. Eu tenho duvidas se ta pegando o id e se o evento change é o melhor para a ocasiao.

Consegue me dar um help ?

A parte do fonte (html) do componente:


<input type="checkbox" class="form-control checks" style="min-width: 30px; width:2em; height:2em; !important" onchange="checa2()" name="cCheck3" id="cCheck3">

<input id="cVerificado3" name="cVerificado3" type="date" class="form-control" style="min-width: 130px !important"  readonly/>

<input id="cVenc3" name="cVenc3" type="date" class="form-control" style="min-width: 130px !important" readonly/>

<div hidden>
    <input type="text" class="form-control" name="cDiasVenc3" id="cDiasVenc3" >
</div>

E o fonte da função:


$(function checa2(){ 
        $(".checks").change(function(){  
                    var id = $(this).attr('id'); 
                    if($(this).is(':checked')){
                        var dtAtual = new Date(); 
                        var ProxData = new Date();

                        for (var varre = 1;varre <= 20;varre++){
                            if (id == ("cCheck"+varre)){    // Na imagem anexada o teste com o id cCheck3
                                ProxData.setDate(dtAtual.getDate() + Number($("#cDiasVenc"+varre).value));
                                $("#cVerificado"+varre).attr("value", dtAtual); 
                                $("#cVenc"+varre).attr("value", ProxData);

                                $("#cVerificado"+varre).value = dtAtual.toISOString().slice(0,10);
                                $("#cVenc"+varre).value = ProxData.toISOString().slice(0,10);
                            };

                        };
                };
        });
});

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.