Varredura na tabela pai x filho para validar preenchimento dos campos com o índice

Eu gostaria de saber qual melhor forma de fazer uma varredura na tabela Pai e Filhoe checar se os campos com os seus respectivos índices estão vazio ou não forma preenchidos e o sistema apresentar o erro informando que não possível avançar pois os rateios do centro de custo nao foram preenchidos.

Tenta colocar no validateForm: var erroValidacaoRateio= form.getValue('erroValidacaoRateio'); if (erroValidacaoRateio== 'true') { throw "Preencha o rateio para todos os centros de custo! "; } No formulário crie um campo para armazenar a validação:

Aí você chama essa função no click do enviar conforme ComoChamarUmaFuncaoAoClicarEmEnviar:

function verificarRateios() { var erroValidacaoRateio= false; var cont = 0; for (var i = 1; i <= cont; i++) { if ($('#ValorRateio___' + i).val() != undefined) { if ($('#ValorRateio___' + i).val() == '') { erroValidacaoRateio= true; break; } } } $('#erroValidacaoRateio').val(erroValidacaoRateio) }

Tem como obrigar o preenchimento quando não existe uma linha quando só aparece o botão?

No exemplo do Gabriel, basta colocar no else do if (indexes.length > 0)

Não entendi, se eu colocar no Else > 0 ele não vai acontecer nada, porque precisaria apertar o botão adicionar. A idéia é quando eu não tenho nenhuma linha na tabela pai x filho ele criticar que preciso incluir ao menos uma linha.

@Italo, você pode validar no evento do formulário validateForm.

Segue exemplo:


function validateForm(form){

    var indexes = form.getChildrenIndexes("seuTablename");
    if (indexes.length > 0) {
        for (var i = 0; i < indexes.length; i++) { // percorre os campos Pai x Filho
            if(form.getValue('txtCampo___' + indexes[i]) == null || form.getValue('txtCampo___' + indexes[i]) == '') {
                throw "Informe o valor do campo!";
            }
        }
    }

}

Isso mesmo. Só sugeri no formulário pq o evento do enviar também valida no mobile.

Excelente exemplo. Testei e funcionou perfeitamente.

Muito bom cara, essa validação pelo campo zoom deu certo, me salvou hehe

Tentei "incrementar" o exemplo do Gabriel, mas não deu certo. Gostaria de validar também se há conteúdo repetido nos campos zoom do paiFilho -> var indexes = form.getChildrenIndexes("tombamento"); if (indexes.length > 0) { for (var i = 0; i < indexes.length; i++) { // percorre os campos Pai x Filho if(form.getValue('tombamento' + indexes[i]) == null || form.getValue('tombamento' + indexes[i]) == '') { var valor1 = i ; var valor2 = valor1 + 1 ;

if($('tombamento' + indexes[i]).val = $('tombamento' + indexes[i] + 1 ).val) {

throw "O Tombamento informado no campo " + valor1 +" está repetido no campo " + valor1 + 1; }

você está colocando os campos Pai x Filho assim:


form.getValue('tombamento' + indexes[i])

O correto é assim:


form.getValue('tombamento___' + indexes[i])