Obter valor de checkbox, em uma datatable

Boa tarde pessoal, estou desenvolvendo um formulário, que tras uma datatable, integrada com RM, nessa datatable, tenho a primeira coluna que são as checkboxs, e possuo um botão que marca todas, necessito saber quais as checkboxs estão marcadas e validar a condição com um campo hidden, que possue valor 1, caso esteja marcada retornar valor 0 fazendo um input de sse valor em outro campo da datatable. Não sei se fui claro, mas é isso que preciso.

Respondendo, como eu consegui fazer segue abaixo. Criei um INPUT 'hidden' que recebe os marcados


No HTML criei esse script abaixo.

 <script>
        function checaMarcador() {
            var linha;
            $('td').on("click", function () {
                var row_index = $(this).parent().index();
                var col_index = $(this).index();
                linha = row_index;

                var bloqueado = '1';
                var desbloqueado = '0';

                var marcador = document.getElementById("marcar___" + linha).checked;

                if (marcador == true) {
                    $("#Numbloqueios___" + linha).val(desbloqueado);
                } else {
                    $("#Numbloqueios___" + linha).val(bloqueado);
                }

            })
        };

    </script>

@Bruno,

Para obter o valor do checkbox deve:


$('#id_do_checkbox').val();
Se tiver valor, retorna o valor, se tiver vazio, irá retornar nulo

Se precisar de algo mais, comentá.

esqueci de dizer que essa checkbox esta em uma datatable, então preciso percorrer a datatable, verificar quem esta checado.

consegui resolver…

Também estou quebrando a cabeça para uma atividade parecida, qual foi a solução Bruno?

o que você precisa, pra eu poder tentar entender e ver se o que usei te ajuda.

Dentro de uma datatable preciso selecionar uma ou várias linhas.
Mas percebi que o comportamento é só para quando selecionamos uma linha, que recebe a class “active”

Voce precisa selecionar um checkbox e este receber um valor é isso?

Preciso identifica-lo, para recuperar as informações que estão na linha. A partir daí criar um array ou obj com esses valores.
Até agora só conseguir fazer usando datatable puros em jquery, só que minha intenção é usar o máximo dos recursos nativos

Galera, com jquery isso é muito simples!

Ler a documentação do framework faz muito bem, pois isso não é Fluig. Documentação Jquery

Desse jeito funciona.

HTML


<div id="dvTable">
    <table>
        <thead>
            <th></th>
        </thead>
        <tbody>
            <tr>
                <td>
                    <input type="checkbox" name="chkTeste___1" id="chkTeste___1">
                </td>
            </tr>
            <tr>
                <td>
                    <input type="checkbox" name="chkTeste___2" id="chkTeste___2">
                </td>
            </tr>
            <tr>
                <td>
                    <input type="checkbox" name="chkTeste___3" id="chkTeste___3">
                </td>
            </tr>
        </tbody>
    </table>
</div>

Jquery com prop name


$('#dvTable table tbody tr').find('input[name^=chkTeste___]:checkbox:checked');

Jquery com prop id


$('#dvTable table tbody tr').find('input[id^=chkTeste___]:checkbox:checked');

Se a ideia é pegar os não checados, ficaria assim:

Jquery com prop id


$('#dvTable table tbody tr').find('input[id^=chkTeste___]:checkbox:not(:checked)');

Isso irá retornar todos os checkbox checados. Se a ideia é percorrer esse conjunto, você pode usar o each para verificar o this.value.

Percorrendo o conjunto


const inputsChecked = $('#dvTable table tbody tr').find('input[id^=chkTeste___]:checkbox:checked');
$.each(inputsChecked, function(index, element){
    console.log(this.value);
})

Abç.

ok Marcos, assim funciona mas acredito que no caso dele ele esta montando as linhas dinamicamente, e do jeito que postou voce esta declarando as TDs, no meu caso eu montei dinamicamente a DATATABLE, vou adicionar como montei, ve se te ajuda.

Valeu Cara! Ajudou bastante.

@Bruno, independente de ser montado dinamicamente ou não, pois não passo filtro de TD na query do jquery. Limito a busca até a TR e após isso faço um find dos elementos que quero. Vale lembrar que essa query pode ser mais refinada afim de melhorar o tempo de busca. Eu uso dessa forma nas datatables que utilizo.