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.
Boa tarde Carlos,
tente com $(this).val() == '' ali dentro do each
— Diogo Boegershausen 09 de Apr de 2018Diogo, adicionei porém continua com o mesmo problema.
— Carlos Piva 09 de Apr de 2018Está assim? $els.each(function(){ if ($(this).val() == '') { addErro($(this)); }else{ addSuccess($(this)); } });
— Diogo Boegershausen 09 de Apr de 2018Desculpe Diogo, tinha me esquecido de acrescentar o $(this) na condição. Agora deu certo. Obrigado.
— Carlos Piva 09 de Apr de 2018