#javascript #html #polymer-1.0
#javascript #HTML #полимер-1.0
Вопрос:
Я использую полимерный бумажный ввод, и я хочу, чтобы на моем вводе type="number"
всегда отображалось 2 десятичных знака, в том числе когда это целое число.
Поэтому вместо значения по умолчанию just 1
я хочу всегда показывать его как 1.00
. Я получил бумажный ввод в step="1"
or четный step="0.01"
, но каждый раз, когда значение является целым числом, оно не отображается 1.00
<paper-input id="taxPercent" min="0" max="99" step="1.00" on-change="_onVariablesChanged" value="0.00"> Tax Percent</paper-input>
_onVariablesChanged: function (event){
let value = event.target.value;
value = parseFloat(value).toFixed(2);
}
Комментарии:
1. Вы пробовали
min=0.00
иmax=99.99
?
Ответ №1:
Когда входные данные обновляются, проверьте .
, найдено ли значение a.
- Если это так, нет необходимости что-то менять.
- Если нет, добавьте
.00
в конце.
document.addEventListener('DOMContentLoaded', () => {
document.querySelector('input').addEventListener('input', update);
});
function update() {
if (/./.test(this.value) === false) {
this.value = `${this.value}.00`;
}
}
<input type="number" step="0.01">
Комментарии:
1. Это работает, но при обычном вводе. Поведение компонента ввода бумаги не позволяет отображать значение .00, когда это целое число. Поэтому я просто подписываюсь на обычный ввод.
Ответ №2:
Вы можете использовать прослушиватель событий, чтобы определить, когда изменяется значение. input.value
будет строка, но добавление a
преобразует ее в число. У Numbers есть toFixed()
метод (mdn), который форматирует числа так, чтобы они содержали определенное число десятичной точности.
const input = document.querySelector('input');
input.addEventListener('input', () =>
input.value = ( input.value).toFixed(2));
<input type="number" min="1">
Комментарии:
1. есть ли способ сделать это с помощью идентификатора ввода insteat селектора запросов?
2.
document.querySelector('#my-input-id')