您可以将输入类型编号中的“ 1.00”而不是仅步进1吗?

时间:2019-04-18 13:46:22

标签: javascript html html5 polymer-1.0

我正在使用Polymer纸张输入法,我想使type="number"的输入内容始终显示2个小数点,包括整数时。

因此,我希望始终将其显示为1,而不是默认的1.00。我输入了step="1"甚至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);
}

2 个答案:

答案 0 :(得分:2)

更新输入后,检查是否在值中找到.

  • 如果是这种情况,则无需更改某些内容。
  • 否则,请在末尾附加.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 :(得分:1)

您可以使用事件侦听器检测值何时更改。 input.value将是一个字符串,但是添加一个+会将其转换为数字。数字具有toFixed()方法(mdn),该方法将数字格式化为包含一定数量的十进制精度。

const input = document.querySelector('input');
input.addEventListener('input', () =>
  input.value = (+input.value).toFixed(2));
<input type="number" min="1">