Я делаю форму, в которой пользователь может ввести сумму в долларах, используя тег ввода номера html. Есть ли способ, чтобы поле ввода всегда отображало 2 десятичных знака?
Для ввода номера html всегда отображаются 2 десятичных знака
Ответ 1
Итак, если кто-то еще наткнется на это, это решение для решения этой проблемы JavaScript:
Шаг 1: Подключите окно ввода номера HTML к событию onchange
myHTMLNumberInput.onchange = setTwoNumberDecimal;
или в html-коде, если вы предпочитаете
<input type="number" onchange="setTwoNumberDecimal" min="0" max="10" step="0.25" value="0.00" />
Шаг 2: Запишите метод setTwoDecimalPlace
function setTwoNumberDecimal(event) {
this.value = parseFloat(this.value).toFixed(2);
}
Изменив "2" в toFixed
, вы можете получить более или менее десятичные разряды, если вы этого пожелаете.
Ответ 2
встроенное решение объединяет предложения Groot и Ivaylo в следующем формате:
onchange="(function(el){el.value=parseFloat(el.value).toFixed(2);})(this)"
Ответ 3
Какие другие люди размещены здесь, в основном работали, но использование onchange
не работает, когда я меняю номер, используя стрелки в одном направлении более одного раза. Что работало oninput
. Мой код (в основном заимствования у MC9000):
HTML
<input class="form-control" oninput="setTwoNumberDecimal(this)" step="0.01" value="0.00" type="number" name="item[amount]" id="item_amount">
JS
function setTwoNumberDecimal(el) {
el.value = parseFloat(el.value).toFixed(2);
};
Ответ 4
Чистый html не способен делать то, что вы хотите. Мое предложение состояло в том, чтобы написать простую функцию javascript, чтобы сделать рудинирование для вас.
Ответ 5
Посмотрите toFixed для номеров Javascript. Вы можете написать функцию onChange для вашего числового поля, которая вызывает на вход FIFX и устанавливает новое значение.
Ответ 6
Вы можете использовать Telerik numerictextbox для большой функциональности
<input id="account_rate" data-role="numerictextbox" data-format="#.000" data-min="0.001" data-max="100" data-decimals="3" data-spinners="false" data-bind="value: account_rate_value" onchange="APP.models.rates.buttons_state(true);" />
код ядра скачать бесплатно
Ответ 7
Принятое решение здесь неверно. Попробуйте это в HTML:
onchange="setTwoNumberDecimal(this)"
и функция выглядит следующим образом:
function setTwoNumberDecimal(el) {
el.value = parseFloat(el.value).toFixed(2);
};
Ответ 8
Еще более простое решение будет следующим:
//limit number input decimal places to two
$(':input[type="number"]').change(function(){
this.value = parseFloat(this.value).toFixed(2);
});