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

232
Visualizações
¿Cómo validar y obtener datos de un botón de radio con cuadro de entrada en reactjs?

Soy nuevo en reaccionar. Tengo un escenario en el que tengo varios botones de opción y algunos de los botones de opción tienen un cuadro de entrada asociado. Como en la imagen de abajo:
Botón de opción múltiple

lo que quiero es:

  • Si el usuario marcó cualquier botón de opción que tenga un cuadro de entrada asociado, ese cuadro de entrada se convertirá en un campo obligatorio. (muestra el mensaje de validación "se requiere entrada" al hacer clic en el botón; de lo contrario, muestra los datos en la consola).

  • Si todo está bien, al hacer clic en el botón Guardar, se mostrarán los datos en el
    consola.

He escrito algo de código. Este código se valida si ninguno de los botones de radio está marcado al hacer clic en el botón (caso obvio). Pero no entiendo cómo lograr el requisito anterior.

 import React from "react"; const ContactUsForm = () => { const isFormValid = () => { var radios = document.getElementsByName("myRadio"); var isValid = false; var i = 0; while (!isValid && i < radios.length) { if (radios[i].checked) isValid = true; i++; } return isValid; }; const handleButtonClick = () => { if (!isFormValid()) { alert("Select atleast one radio button"); } else { alert("Success"); } }; return ( <div> {" "} <br /> <label> <input type="radio" name="myRadio" value="Graduate" /> I am graduate </label>{" "} <br /> <label> <input type="radio" name="myRadio" value="Something" /> Some radio button </label>{" "} <br /> <label> <input type="radio" name="myRadio" />I am graduate from university name </label>{" "} <input type="text" id="other" /> <br /> <label> <input type="radio" name="myRadio" /> Other </label> <input type="text" id="other2" /> <br /> <button onClick={handleButtonClick} type="submit"> Save </button>{" "} <br /> </div> ); }; export default ContactUsForm;

¿Alguien puede ayudarme a lograr el requisito anterior en reaccionar? Gracias
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Entonces deberías usar el gancho React State.

Para cada entrada, debe agregar el evento onClick .

Declarar estado:

 const [radioBtn, setRadioBtn] = useState(null);

Cambiar estado para cada clic de botón:

 <input type="radio" name="myRadio" value="Graduate" onClick={() => setRadioBtn('Graduate')}/> I am graduate

Al final, todo lo que necesita hacer es hacer clic en Guardar y puede administrar todo lo que necesita en handleButtonClick

 <button onClick={handleButtonClick} type="submit"> Save </button>

Aquí puedes validar todo lo que necesites. En lugar de alert , puede usar console.log(radioBtn) para obtener resultados en la consola.

 const handleButtonClick = () => { if (radioBtn) { alert(radioBtn); } else { alert(radioBtn + ' fail'); } }
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