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

129
Visualizações
Calcular con los botones menos/más

(Editar: arriba)

Primero soy un principiante de JS. Necesito hacer un cálculo usando tanto el número de tipo de entrada como los botones más/menos vinculados a él (para reemplazar los botones giratorios en las pantallas de los teléfonos inteligentes). Preciso que no puedo usar JQuery ni ninguna otra biblioteca externa.

Me enfrento a 3 problemas:

  1. si no enfoco primero la entrada, el botón "+" no funciona (no se llama a la función).
  2. una vez que la entrada se ha enfocado al menos una vez, puedo aumentar/disminuir su valor con los botones. Pero si cambio el valor de entrada haciendo clic en él e ingresando un nuevo valor con el teclado, hago clic en los botones para aumentar/disminuir varias veces. 2 veces, 5 veces, 7 veces. Lo he comprobado con console.log, la función se llama varias veces.
  3. el cálculo no se realiza al usar los botones.

He pasado horas y horas intentando solucionarlo... gracias de antemano.

Aquí está el código:

 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>title</title> <style> .result { width: 5rem; height: 2.5rem; background-color: grey; } </style> </head> <body> <form name="myForm"> <div class="result"> <output id="output"></output> </div> <div> <input type="button" value="-" id="decreaseMe"> <input type="number" id="saisie"> <input type="button" value="+" id="increaseMe"> </div> </form> <script> var valeur = 10; var varSaisie = document.querySelector('#saisie'); var varOutput = document.querySelector('#output'); myForm.addEventListener('input', function () { decreaseMe.addEventListener('click', function(){ varSaisie.value = --varSaisie.value; }); increaseMe.addEventListener('click', function(){ if(varSaisie.value === "") { varSaisie.value = 0; } varSaisie.value = ++varSaisie.value; }); varOutput.value = parseFloat(varSaisie.value) + parseFloat(valeur); }, false); </script> </body> </html>
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Parece que algo está impidiendo que el clic llegue al botón más. No deberías tener que concentrarte en él para que funcione. podría estar detrás de algo. intente moverlo para que sea el elemento superior de la página agregando este estilo a la página:

 <style> #increaseMe { z-index:99; } </style>

Por favor comente si esto solucionó este problema.

about 4 years ago · Juan Pablo Isaza Relatório

0

Finalmente he encontrado la solución. Lo comparto por si es de utilidad para la comunidad. No estoy seguro de que sea la mejor práctica, pero hace el trabajo.

 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Formulaire avec boutons plus moins</title> <style> .result { width: 5rem; height: 2.5rem; background-color: grey; } </style> </head> <body> <form name="myForm"> <div class="result"> <output id="output"></output> </div> <div> <input type="button" value="-" id="decreaseMe"> <input class=boxnumber type="number" id="saisie" min="0" max="95" step="1" placeholder="0-95"> <input type="button" value="+" id="increaseMe"> </div> </form> <script> var valeur = 10; var varSaisie = document.querySelector('#saisie'); var varOutput = document.querySelector('#output'); myForm.addEventListener('input', function(){ myResult(); }); decreaseMe.addEventListener('click', function(){ varSaisie.value = --varSaisie.value; myResult(); }); increaseMe.addEventListener('click', function(){ varSaisie.value = ++varSaisie.value; myResult(); }); function myResult() { varOutput.innerHTML = parseFloat(varSaisie.value) + parseFloat(valeur); } </script> </body> </html>
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