Маска для ввода даты в 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 части.
маска ломается если ввести 123(
С маской все в порядке, скорее всего у вас не работает JQuery