it-swarm.dev

Czy jQuery może dodawać przecinki podczas wpisywania liczb przez użytkownika?

Jak mogę dynamicznie dodawać przecinki, gdy użytkownik wprowadza liczby? Czy jest dobry program do formatowania liczb, który mógłby pomóc? Muszę dodać te liczby później, aby ostatecznie usunąć przecinki w wierszu. Ale ekran musi pokazywać przecinki dla lepszej czytelności.

28
Matt

Uruchom fragment kodu, aby zobaczyć, jak działa

$('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

Oto implementacja odpowiedzi @ maček w Vanilla JS, jeśli nie chcesz używać 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