Validação Input Formulario

Bom dia,

Estou tentando realizar a validação individual de cada input em meu formulário, com o seguinte código.

function camposObrigatorios() {
    $("input:required, select:required, textarea:required").each(function(index, value){
        $(this).parent().find("label.control-label:first").append('<span class="text-danger"> *</span>');
    });
}
function addErro(campo) {
    campo.parents("div.form-group").removeClass('has-success').addClass('has-error');
    campo.focus();
}
function addSuccess(campo) {
    campo.parents("div.form-group").removeClass('has-error').addClass('has-success');
    campo.focus();
}
var $els = $('#valornf,#nummigo');
if ($els.val() == '') {    
    addErro($els);
}else{
    addSuccess($els);
    }
$(document).ready(function(){
    var $els = $('#valornf,#nummigo');
    $els.change(function(){
        var $els = $('#valornf,#nummigo');
        $els.each(function(){    
            if ($els.val() == '') {    
                addErro($els);
            }else{
                addSuccess($els);
            }
        });
    });
});

Porém estou com um problema, toda vez que o primeiro campo é preenchido corretamente, adicionando o "has-success" como classe, o segundo campo, mesmo sem nada preenchido também fica com a classe "has-success".

Qualquer dúvida estou à disposição.

compartilhar
  • Boa tarde Carlos,

    tente com $(this).val() == '' ali dentro do each

    Diogo Boegershausen   09 de Apr de 2018
  • Diogo, adicionei porém continua com o mesmo problema.

    Carlos Piva   09 de Apr de 2018
  • Está assim? $els.each(function(){ if ($(this).val() == '') { addErro($(this)); }else{ addSuccess($(this)); } });

    Diogo Boegershausen   09 de Apr de 2018
  • Desculpe Diogo, tinha me esquecido de acrescentar o $(this) na condição. Agora deu certo. Obrigado.

    Carlos Piva   09 de Apr de 2018
  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 formulario validacao ou faça a sua própria pergunta.