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

335
Visualizações
Dar formato al campo de entrada de moneda con signo de dólar y comas

Tengo un campo de entrada de ingresos en un formulario javascript/jquery:

  1. Necesito un signo de dólar: antes
  2. agregar comas a medida que aumenta la moneda

Tengo un signo de dólar que se muestra a través de css, pero hay problemas para centrarlo y garantizar que el punto de entrada del campo esté al lado sin superponerse. No estoy seguro de cómo hacer las comas. ¡Cualquier sugerencia o consejo es bienvenido!

HTML:

 <form id="rev-calculator"> <label for="price">Monthly Revenue</label> <div class="fields"> <input type="number" name="price" id="price" min="0" max="10000000000" required data-type="number"> </input> <br> </form>

CSS:

 <style> .body { text-align: left; } .fields { margin: 0 10px 0 0; } .fields:before { content: "$"; text-align: center; position: relative; left:30px; } #price { border-radius: 5px; margin: 15px; padding: 10px; color: black; } </style>

JS:

 <script> $('#rev-calculator').on('click', 'button', function(e) { e.preventDefault(); var price = $("#price").val(); console.log(price); }) </script>

codepen: https://codepen.io/kedarPE/pen/JjroYyb

campo de entrada

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

0

Bueno, aquí hay una manera, aunque en realidad no es tan simple como esperaba cuando comencé por este camino. Puede usar Intl.NumberFormat para obtener la coma allí (según la configuración regional). Para dar cabida a los decimales, los olfateo al principio y los agrego al resultado.

Para permitir la coma, hice de este un campo de texto con un atributo de patrón. Además, ajusté tu CSS para que se vea un poco mejor con el $

 $('#price').keydown(function(e) { setTimeout(() => { let parts = $(this).val().split("."); let v = parts[0].replace(/\D/g, ""), dec = parts[1] let calc_num = Number((dec !== undefined ? v + "." + dec : v)); // use this for numeric calculations console.log('number for calculations: ', calc_num); let n = new Intl.NumberFormat('en-EN').format(v); n = dec !== undefined ? n + "." + dec : n; $(this).val(n); }) })
 .body { text-align: left; } .fields { margin: 0 10px 0 0; } .fields:before { content: "$"; text-align: center; position: relative; left: 35px; } #price { border-radius: 5px; margin: 15px; padding: 10px 10px 10px 20px; color: black; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form id="rev-calculator"> <label for="price">Monthly Revenue</label> <div class="fields"> <input type="text" pattern="[0-9.,]+" name="price" id="price" required data-type="number" /> <br> </form>

about 4 years ago · Juan Pablo Isaza Relatório

0

Me sorprende que la respuesta única para este problema tenga muchos votos porque tiene un defecto pequeño pero importante: el evento no debe ser keydown, debe ser keyup. Si usa keydown, no leerá las teclas que está presionando en este momento sino la anterior. Por lo tanto, actualice su respuesta.

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