Автозаміна коми на крапку в input через javascript (звернення через jquery)

Last update: 22 Квітня, 2023

Category: Form, JavaScript Code Examples

Актуально до використання в калькуляторах, де виникає помилка через введення клієнтом коми замість крапки.

Код нижче:

  1. Розділено на 2 частини, в першій звернення до поля відбувається по ID,  в другій – по класу.
  2. Скрипт спрацьовує і на вставку інформації з буферу обміну і на введення.
  3. Цифра “8” в коді – то обмеження кількості цифр після крапки.
<body>
    <form>
        <input type="text" id="first">
        <input type="text" id="second">
            <br/>        
        <input type="text" class="price">
        <input type="text" class="price">
        <input type="text" class="price">
    </form>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script type="text/javascript">
        $('input#first').on('input', function() {
          $(this).val($(this).val().replace(/\,/g, '.'));
          $(this).val($(this).val().replace(
            /(?=(\d+\.\d{8})).+|(\.(?=\.))|([^\.\d])|(^\D)/gi, '$1'));
        })
        $('input#second').on('input', function() {
          $(this).val($(this).val().replace(/\,/g, '.'));
          $(this).val($(this).val().replace(
            /(?=(\d+\.\d{8})).+|(\.(?=\.))|([^\.\d])|(^\D)/gi, '$1'));
        })
        $('input.price').on('input', function() {
          $(this).val($(this).val().replace(/\,/g, '.'));
          $(this).val($(this).val().replace(
            /(?=(\d+\.\d{8})).+|(\.(?=\.))|([^\.\d])|(^\D)/gi, '$1'));
        })        
    </script>
</body>