jQuery: автоматическое форматирование числа в текстовом поле до двух десятичных знаков при нажатии клавиши - PullRequest
2 голосов
/ 31 декабря 2011

Как получить поле ввода (текст) для приема только цифр и автоматического форматирования его в два десятичных знака, когда пользователь вводит каждую цифру?

Например, значение по умолчанию для поля составляет 0,00 Пользователь хочет ввести 23.50

Step 1: user types 2 - field shows 0.02
Step 2: user types 3 - field shows 0.23
Step 3: user types 5 - field shows 2.35
Step 4: user types 0 - field shows 23.50

Заранее спасибо!

1 Ответ

0 голосов
/ 31 декабря 2011

следующее выражение регулярного выражения соответствует 99,99, 99999,99 и т. Д.

\$\d+\.\d{2}

используйте функцию jQuery .live(), чтобы связать событие keyup с вашим текстовым полем.

$('.textBoxDecimalOnly').live('keyup', function () {
    // inside this keyup hook, grab the value in the text box.
    // if it matches the regex... do something
    // else do something different
});

когда произойдет keyup, проверьте значение текстового поля по отношению к этому выражению регулярного выражения и сделайте то, что вы хотите, с вашим ответом.

чтобы заставить его работать справа налево, вы можете переформатировать строку ...

// 1. get text in the box.
// 2. if length < 3 ... append a "." to the first string.
// 3. if > 3 get the index of the 2nd to last character and append "." just before it.

запихайте эту логику в ваш живой хук.

...