Форматирование чисел (маска ввода) в jQuery

Я пытаюсь отформатировать числа в текстовом поле следующим образом:

123,456,789

Я знаю, что для этого существует множество плагинов jQuery, однако все они изменяют фактическое значение. Я просто хочу, чтобы он выглядел отформатированным, а не отформатированным.

Например, если я ввожу 23845 в свое текстовое поле, я хочу, чтобы оно визуально преобразовывалось в 23,845, но когда я отправляю форму, я хочу, чтобы она отправлялась как 23845.

Кто-нибудь знает, как я могу этого добиться? Все другие решения, которые я видел, изменяют фактическое представленное значение.


person blitzmann    schedule 29.06.2011    source источник


Ответы (2)


Насколько мне известно, плагин masks не меняет значение, а только отображение: http://plugins.jquery.com/plugin-tags/mask

[править] в списке всех плагинов я использовал этот в своем коде: https://github.com/RobinHerbots/jquery.inputmask ([edit 2] и работал так, как вы хотите я проверил код, где я его использовал, и поведение по умолчанию заключается в том, что он отправляет маску со значением вам нужно использовать опцию для снятия маски, как я сказал в своем комментарии)

person JMax    schedule 29.06.2011
comment
Наконец-то он заработал, но возникла проблема с отправкой замаскированного значения при отправке формы. Может я чего-то не понимаю... =( - person blitzmann; 29.06.2011
comment
это зависит от выбранного вами плагина маски ввода. У некоторых есть возможность снять маску (но вопреки тому, что я сказал - извините - похоже, это не поведение по умолчанию). Посмотрите решение unmask здесь: github.com/RobinHerbots/jquery.inputmask/issues/ 8 - person JMax; 30.06.2011
comment
@Ryan: рад, что ты нашел решение своей проблемы :) - person JMax; 08.07.2011

Пожалуйста, попробуйте следующее:

<script type="text/javascript">

        $(document).on('keyup', '.test', function() {
            var x = $(this).val();
            $(this).val(x.toString().replace(/,/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ","));
        });
    </script>

    <form>
       <input class="test" type="text" />
    </form>
person Atif Tariq    schedule 03.11.2015