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

147
Visualizações
Si ambas casillas de verificación son verdaderas, entonces muestre DIV

Estoy tratando de mostrar un Div que contiene un elemento de botón, pero solo cuando AMBAS casillas de verificación han sido "acordadas". Intenté usar JS para verificar esto y luego configurar la visualización de estilo cuando se hace clic en cada casilla de verificación.

HTML:

 <div class="agreement_box"> <input type="checkbox" id="box1" onclick="showMe('submit_btn')"> </div> <br> <div class="agreement_box"> <input type="checkbox" id="box2" onclick="showMe('submit_btn')"> </div> <div id="submit_btn" class="profileSubmit_btn" style="display:none"> <button> BUTTON </button> </div>

JS:

 function showMe(box) { var chbox1 = document.getElementByID("box1"); var chbox2 = document.getElementByID("box2"); var vis = "none"; if (chbox1.checked && chbox2.checked) { vis = "block"; break; } document.getElementById(box).style.display = vis; }

Violín: https://jsfiddle.net/nhykqodp/2/

Soy un poco nuevo en JS y mi conocimiento de HTML tiene unos 10 años de antigüedad en este momento. Cualquier ayuda sería apreciada.

Gracias.

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

0

Si ejecuto tu código, muestra:

SyntaxError no capturado: instrucción de interrupción ilegal

Eso es porque un break solo se puede usar dentro de un bucle.


Además, tiene un error tipográfico, debería ser getElementById en lugar de getElementByID

Nota : la d no debe estar en mayúscula


  • quitar el break
  • Corrija los errores tipográficos:

 function showMe(box) { var chbox1 = document.getElementById("box1"); var chbox2 = document.getElementById("box2"); var vis = "none"; if (chbox1.checked && chbox2.checked) { vis = "block"; } document.getElementById(box).style.display = vis; }
 <div class="agreement_box"> <input type="checkbox" id="box1" onclick="showMe('submit_btn')"> </div> <br> <div class="agreement_box"> <input type="checkbox" id="box2" onclick="showMe('submit_btn')"> </div> <div id="submit_btn" class="profileSubmit_btn" style="display:none"> <button> BUTTON </button> </div>


Usando una declaración if en línea, podemos eliminar la variable vis para que podamos modificar el style de inmediato así:

 function showMe(box) { const chbox1 = document.getElementById("box1"); const chbox2 = document.getElementById("box2"); document.getElementById(box).style.display = (chbox1.checked && chbox2.checked) ? 'block' : 'none'; } 

 function showMe(box) { const chbox1 = document.getElementById("box1"); const chbox2 = document.getElementById("box2"); document.getElementById(box).style.display = (chbox1.checked && chbox2.checked) ? 'block' : 'none'; }
 <div class="agreement_box"> <input type="checkbox" id="box1" onclick="showMe('submit_btn')"> </div> <br> <div class="agreement_box"> <input type="checkbox" id="box2" onclick="showMe('submit_btn')"> </div> <div id="submit_btn" class="profileSubmit_btn" style="display:none"> <button> BUTTON </button> </div>

about 4 years ago · Juan Pablo Isaza Relatório

0

Los errores de sintaxis ya han sido señalados; para ocultar/mostrar elementos, estos ya tienen una API que se llama el.hidden . Te recomiendo que lo uses.

Aparte de eso, no debe usar controladores de eventos en línea como onclick . En su lugar, use EventTarget.addEventListener() .

También generalicé su código, de modo que cualquier cantidad de casillas de verificación pueda actuar como alternar para cualquier elemento, dado que ese elemento tiene la id que define en data-toggle en las casillas de verificación.

 const checkboxes = Array.from(document.querySelectorAll('[data-toggle]')); function allChecked(toggle) { return checkboxes.filter(cb => cb.dataset.toggle === toggle).every(cb => cb.checked); } for (const checkbox of checkboxes) { checkbox.addEventListener('change', function() { document.getElementById(this.dataset.toggle).hidden = !allChecked(this.dataset.toggle); }); }
 <div class="agreement_box"> <input type="checkbox" data-toggle="submit_btn"> </div> <br> <div class="agreement_box"> <input type="checkbox" data-toggle="submit_btn"> </div> <div id="submit_btn" class="profileSubmit_btn" hidden> <button> BUTTON </button> </div>

about 4 years ago · Juan Pablo Isaza Relatório

0

Pequeño error de sintaxis simplemente reemplace document.getElementByID a document.getElementById

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