您可以在输入类型编号中输入“1.00”而不是 1 吗?

Can you step "1.00" instead of just 1 in input type number?

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

因此,我希望始终将其显示为 1.00,而不是默认的 1。我得到了step="1"甚至step="0.01"的paper-input,但是每次值都是整数时,它不会显示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);
}

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

  • 如果是这样,则无需更改任何内容。
  • 如果没有,请在末尾附加.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">

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

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