Маска для ввода даты в input без плагина на JavaScript

Конечно, многое можно в мире масок сделать при помощи плагинов, но мне лично не нравится, как появляется разделитель даты и месяца. Пришлось состряпать свою маску. Код нашел в интернете и доработал. Имеем стандартный input c id=mydata

<input id="mydata" maxlength="10" type="text" />

Код JavaScript такой

$(document).ready(function() {
var input = document.querySelectorAll('#mydata')[0];
 
var dateInputMask = function dateInputMask(elm) {
 
    elm.addEventListener('keyup', function(e) {
    if( e.keyCode < 47 || e.keyCode > 57) {
      e.preventDefault();
    }
 
   var len = elm.value.length;
 
    if(len !== 1 || len !== 3) {
      if(e.keyCode == 47) {
        e.preventDefault();
      }
    }
   if(len === 2) {
    if (e.keyCode !== 8 && e.keyCode !== 46) { 
      elm.value = elm.value+'.';
    }}
 
if(len === 5) {
    if (e.keyCode !== 8 && e.keyCode !== 46) { 
      elm.value = elm.value+'.';
    }}
  });
};
 
dateInputMask(input);
});

В моем варианте точка появляется сразу после того как нажимаются 2 и 5 символы. Ограничение в 10 символов ставится в html части.

Вам понравиться

2 комментария

  1. Ildar:

    маска ломается если ввести 123(

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *