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

Опитвам се да форматирам числа в текстово поле така:

123,456,789

Знам, че има много jQuery плъгини за това, но всички те променят действителната стойност. Просто искам да изглежда форматирано и да не се изпраща форматирано.

Например, ако напиша 23845 в моето текстово поле, искам то визуално да се преобразува в 23,845, но когато изпратя формуляра, искам той да се изпрати като 23845.

Някой знае ли как мога да постигна това? Всички други решения, които съм виждал, променят действителната подадена стойност.


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


Отговори (2)


AFAIK, плъгинът за маски не променя стойността, а само дисплея: http://plugins.jquery.com/plugin-tags/mask

[редактиране] в списъка с всички плъгини, използвах този в моя код: https://github.com/RobinHerbots/jquery.inputmask ([редактиране 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
Благодаря за вашата помощ! Реших, че inputmask не е точно това, което искам (не ми харесва как има контейнери и фиксирани знаци там и не мога да разбера как да ги премахна), но вие ме насочихте към правилния посока и в крайна сметка намерих MeioMask. Работи чудесно. Премахнах маските със събитието .submit(). meiocodigo.com/projects/meiomask - person blitzmann; 07.07.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