Remover ou Adicionar a classe do segundo elemento filho
Olá a todos, eu estou tendo dificuldade em fazer uma mudança em um form, já pesquisei maneiras mas não dá certo, tenho a seguinte situação:
Tem um formulário de cadastro de anúncio onde o cara pode se cadastrar escolhendo entre plano gratis ou pago, o gratis tem alguns campos e o pago tem esses campos mais alguns outros extras, os campos são obrigatórios, mas quando ele selecionar o gratis entào não posso obriga-lo a preencher um campo que não está disponível para ele.
No meu html os campos que pertencem ao plano pago estão dentro de uma div com a classe nt, então no meu arquivo functions.js eu crei o seguinte bloco de código:
$("#plano").change(function() {
if($(this).children("option").val() == 'gratis') {
$.each($("#frm_cadastro").find("div .nt")) {
$($(this) + ":nth-child(2)").removeClass("required");
$(this).hide();
}
} else {
$.each($("#frm_cadastro").find("div .nt")) {
$($(this) + ":nth-child(2)").addClass("required");
$(this).show();
}
}
})
O que eu quis fazer é verificar o valor do option quando ele mudar o plano no select, então verifica, se for gratis vai remover a classe required do segundo filho que é o input ou textarea, pois o primeiro é a label, remover pois pode ser que ele já tenha escolhido o plano pago antes, pois de começo vem selecionado o gratis e esses campos vem sem a classe required, então ele esconde a as divs que contém esse campo, e no caso se for pago ele faz o processo contrário, já tentei com o :nth-child() e adicionando uma classe second a esses campos e no codigo fazendo o .find(".second"), mas nem um nem outro dá certo, alguém por favor poderia me ajudar ?Discussão (7)
Carregando comentários...