Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

135
Visualizações
jQuery agrega clase a fieldset si la entrada tiene una clase de error

¿Cómo puedo agregar la clase de "error" a los conjuntos de campos también si sus entradas tienen una clase de "error"?

Estoy tratando de lograr esto de la siguiente manera, pero estoy agregando la clase de "error" a cada conjunto de campos, sin importar si la entrada tiene la clase de "error" o no.

 $('#submit').click(function(e) { e.preventDefault(); $('input').each(function() { if($(this).hasClass("error")){ $("fieldset").addClass("error"); } }); });
 <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <div class="form-holder"> <fieldset> <legend>First name</legend> <input type="text" class="form-control" name="firstname" placeholder="First name" required> </fieldset> </div> <div class="form-holder"> <fieldset> <legend>Last name</legend> <input type="text" class="form-control error" name="lastname" placeholder="Last name" required> </fieldset> </div> <div class="form-holder"> <fieldset> <legend>Email</legend> <input type="email" class="form-control error" name="email" placeholder="Email" required> </fieldset> </div> <input type="submit" id="submit" value="Send">

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

El código está haciendo lo que le estás diciendo. Cuando dices $("fieldset").addClass("error"); significa agregar la clase de error a todos los elementos del conjunto de campos.

Lo que debe hacer es encontrar el conjunto de campos que es el padre de la entrada que tiene la clase de error. En tu ejemplo esto sería:

 $('#submit').click(function(e) { e.preventDefault(); $('input').each(function() { if($(this).hasClass("error")){ $(this).closest("fieldset").addClass("error"); } }); });

El método closest() viajará por el DOM en busca del primer elemento que coincida con el selector. Por lo tanto, debería encontrar el padre del conjunto de campos más cercano a la entrada.

about 4 years ago · Juan Pablo Isaza Relatório

0

Intente apuntar al conjunto de fieldset principal explícitamente mediante el parent . (Y también almacene en caché jQuery'd this var.)

 $('#submit').click(function(e) { e.preventDefault(); $('input').each(function() { var $this = $(this); if ($this.hasClass("error")) { $this.parent("fieldset").addClass("error"); } }); });
 <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <div class="form-holder"> <fieldset> <legend>First name</legend> <input type="text" class="form-control" name="firstname" placeholder="First name" required> </fieldset> </div> <div class="form-holder"> <fieldset> <legend>Last name</legend> <input type="text" class="form-control error" name="lastname" placeholder="Last name" required> </fieldset> </div> <div class="form-holder"> <fieldset> <legend>Email</legend> <input type="email" class="form-control error" name="email" placeholder="Email" required> </fieldset> </div> <input type="submit" id="submit" value="Send">

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda