Não consigo rodar estrutura pra validar campos em evento validateForm

Bom dia pessoal!

Estou criando um formulário, e estou na parte em que quero validar os campos obrigatórios. Para não ter que criar um "if" para cada campo definido como obrigatório, criei uma estrutura usando alguns "for" onde eu percorro todos os inputs do meu formulário, e faço algumas validações para checar se esse campo é obrigatório, se ele está visível e está vazio. Porém, meu código só funciona se jogo ele dentro do form em html (fiz isso para testar a lógica), se eu coloco o mesmo código no evento validateForm, o Fluig me retorna um erro durante a passagem da atividade, que diz que o objeto document não foi definido. Segue print do erro e código. Se alguém souber como resolver isso, ou se tem alguma forma mais fácil de fazer, seria de grande ajuda. Obrigado!

function validateForm(form){

    var camposObgt = [];
    var teste = 0;

    for (var i=0; i < document.getElementsByTagName("div").length; i++){

        if(document.getElementsByTagName("div")[i].style.display == "block"){

            for(var t = 0; t < document.getElementsByTagName("div")[i].getElementsByTagName("input").length; t ++){

                if(document.getElementsByTagName("div")[i].getElementsByTagName("input")[t].value == '' && document.getElementsByTagName("div")[i].getElementsByTagName("input")[t].id != ""){

                    camposObgt[teste] = document.getElementsByTagName("div")[i].getElementsByTagName("input")[t].name;
                    teste ++;

                    $("#" + document.getElementsByTagName("div")[i].getElementsByTagName("input")[t].id).css("backgroundColor", "#CD5555");

                }
            }
        }
    }

    var texto = "";

    for(var i = 0; i < teste; i++){
    texto = texto + String.fromCharCode(10) + camposObgt[i]
    }
    var mensagem = "Preencha os campos:" + texto;

    document.getElementById("txtMsgErro").value = mensagem;

}
compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

-1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags validateform campos formulario ou faça a sua própria pergunta.