web-dev-qa-db-fra.com

JQuery peut-il ajouter des virgules lors de la saisie de numéros?

Comment puis-je ajouter de manière dynamique des virgules lorsqu'un utilisateur entre des chiffres? Y at-il un bon formateur de nombres qui pourrait aider? Je dois ajouter ces chiffres plus tard, donc je dois éventuellement supprimer les virgules. Mais l'écran doit afficher les virgules pour une meilleure lisibilité.

28
Matt

Exécutez l'extrait de code pour le voir fonctionner

$('input.number').keyup(function(event) {

  // skip for arrow keys
  if(event.which >= 37 && event.which <= 40) return;

  // format number
  $(this).val(function(index, value) {
    return value
    .replace(/\D/g, "")
    .replace(/\B(?=(\d{3})+(?!\d))/g, ",")
    ;
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input class="number">

80
maček

Voici une implémentation de la réponse de @ maček dans Vanilla JS si vous ne souhaitez pas utiliser jQuery:

var el = document.querySelector('input.number');
el.addEventListener('keyup', function (event) {
  if (event.which >= 37 && event.which <= 40) return;

  this.value = this.value.replace(/\D/g, '')
                         .replace(/\B(?=(\d{3})+(?!\d))/g, ',');
});
<input class="number">

1
aboutaaron
        <script>
        function costt() {   
        var costs = document.getElementById('cost').value;   
            if(costs != '') {          
     //   alert("ok");     
                cost.value = cost.value.replace(/\D/g, '').replace(/\B(?=(\d{3})+(?!\d))/g, ',');
            } else {             
     //   alert("lol");     
                cost.value= 0;
            }        
        }
        </script>

0
Jhomar