用两位数更新输入(type =" Number")

时间:2015-06-08 21:19:19

标签: javascript html5

我尝试使用Pure Javascript(如果可能,不使用jquery)。 我需要更新输入框'值如此:01。我的用例是用于MM和DD输入框(主要用于美学)。使用输入滚轮时,它会随12而增加...我希望它增加如下:0102 ...

1 个答案:

答案 0 :(得分:1)

感谢@Daemedeor带领我这个:

这会将类型更改为text并在模糊前加0。在焦点上,它会将类型text更改回number类型并删除前导0。您所要做的就是设置输入样式,使它们不会改变宽度。

    (function() {
      var monthInput = document.getElementById('month');
      var dayInput = document.getElementById('day');

      var prependZero = function() {
        if (this.value === '') return;

        event.target.setAttribute('type', 'text');
        if (this.value.indexOf('0') === -1  && this.value.length !== 2) this.value = '0' + this.value;
      };

      var removeZero = function() {
          this.value = this.value.split('0')[1];
          this.setAttribute('type', 'number');
      };

      dayInput.addEventListener('blur', prependZero, false);
      dayInput.addEventListener('focus', removeZero, false);
      monthInput.addEventListener('blur', prependZero, false);
      monthInput.addEventListener('focus', removeZero, false);
    })();