Маска для полей формы.Маски ввода для текстовых полей — PROG-TIME

Маска для полей формы.Маски ввода для текстовых полей

27.02.2019
Содержание:

В этой записи я покажу вам плагин который создает маску для поля input. С помощью данного плагина вы сможете сделать маску поля для телефона, даты, или любого другого. Вы можете сделать любую маску. Плагин называется — jquery.maskedinput

Демо

Ссылка на плагин — https://github.com/digitalBush/jquery.maskedinput

Из всего списка файлов нам нужен только jquery.maskedinput.js, который находится в папке dist.

HTML

Здесь нам нужно подключить плагин и библиотеку jquery.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="jquery.maskedinput-master/dist/jquery.maskedinput.js"></script>

Далее нужно прописать просто тег input, которому нужно указать уникальный id. Этот id мы в дальнейшим будем использовать в jquery скрипте.

<input id="phone1" type="text">

JavaScript(jQuery)

JavaScript код необходимо прописать в самом низу HTML кода. Здесь мы прописываем функцию, в которой указываем маску для нашего поля.

$("#phone1").mask("8(999) 999-99-99");

По сути этого кода достаточно, для того чтобы прописать простую маску для поля. Далее я покажу дополнительные параметры и код с самыми популярными масками, которые используются на сайтах.

Дополнительные возможности плагина

Выполнение дополнительного кода после заполнения поля

С помощью этого плагина вы можете прописать функцию, которая будет выполнять дополнительно прописанный код, когда поле будет заполнено.

$("#phone3").mask("8(999) 999-99-99", {
    //ЭТОТ КОД ВЫВЕДЕТ СООБЩЕНИЕ ПОСЛЕ ЗАПОЛНЕНИЯ ПОЛЯ 
    completed: function(){ console.log('Поле заполнено'); }
});

Выбор маски пользователем

Так же данный плагин позволяет изменять маску в зависимости от выбора пользователя.

Для этого нужно изменить HTML код

<div class="form-group">
    <label for="phone">Телефон: </label>
    <select id="country" class="form-control">
        <option value="ru"><img src="">Россия +7</option>
        <option value="ua">Украина +380</option>
        <option value="by">Белоруссия +375</option>
    </select>
    <input id="phone" type="text" class="form-control">
</div>

И прописать JavaScript код, который в зависимости от выбранного параметра будет изменять маску для поля.

$(function() {
        function maskPhone() {
            var country = $('#country option:selected').val();
            switch (country) {
                case "ru":
                    $("#phone").mask("+7(999) 999-99-99");
                    break;
                case "ua":
                    $("#phone").mask("+380(999) 999-99-99");
                    break;
                case "by":
                    $("#phone").mask("+375(999) 999-99-99");
                    break;
            }
        }
        maskPhone();
        $('#country').change(function() {
            maskPhone();
        });
    });

Самые популярные варианты масок для полей

HTML

Для телефона 1: <input  id="phone1" type="text" class="form-control">
<hr>
Для телефона 2: <input  id="phone3" type="text" class="form-control">
<hr>
Для даты: <input  id="date" type="text" class="form-control">
<hr>
Для даты(без разделителя):<input  id="index" type="text" class="form-control">
<hr>
Число с плавающей точкой: <input  id="number" type="text" class="form-control">
<hr>
Число с плавающий точкой(обязательно с "+" или "-" вначале): <input  id="number2" type="text" class="form-control">
<hr>
Для кода цвета:
<input  id="color" type="text" class="form-control">
<hr>
Для выбора маски из списка:
<hr>
<div class="form-group">
    <label for="phone">Телефон: </label>
    <select id="country" class="form-control">
        <option value="ru"><img src="">Россия +7</option>
        <option value="ua">Украина +380</option>
        <option value="by">Белоруссия +375</option>
    </select>
    <input id="phone" type="text" class="form-control">
</div>

JavaScript(jQuery)

    //Для телефона 1
    $(function(){
        $("#phone1").mask("8(999) 999-9999");
    });

    //Для телефона 2
    $("#phone3").mask("8(999) 999-99-99", {
        completed: function(){ alert("Вы ввели номер: " + this.val()); 
    }
    });

    //Для даты
    $("#date").mask("99.99.9999", {placeholder: "дд.мм.гггг" });

    //Для даты(без разделителя)
    $("#index").mask("999999", {placeholder: " " });

    //Для числа с плавающей точкой
    $("#number").mask("0.9?9");

    //Для числа с плавающий точкой(обязательно с "+" или "-" вначале)
    $.mask.definitions['~']='[+-]';
    $("#number2").mask("~9.99");

    //Для кода цвета
    $.mask.definitions['h']='[A-Fa-f0-9]';
    $("#color").mask("#hhhhhh");

    //Для выбора маски из списка:
    $(function() {
        function maskPhone() {
            var country = $('#country option:selected').val();
            switch (country) {
                case "ru":
                    $("#phone").mask("+7(999) 999-99-99");
                    break;
                case "ua":
                    $("#phone").mask("+380(999) 999-99-99");
                    break;
                case "by":
                    $("#phone").mask("+375(999) 999-99-99");
                    break;
            }
        }
        maskPhone();
        $('#country').change(function() {
            maskPhone();
        });
    });
На этом всё!
Больше интересных статей в нашей группе - https://vk.com/progtime
Вы так же можете разместить свой вопрос на нашем форуме, где другие программисты смогут вам помочь в решение вашей задачи - https://vk.com/prog_time
Так же прокачивайте свои навыки на нашем канале - https://www.youtube.com/c/ProgTime
Наши планы
  • Написание материала для курса по разработке ботов на Telegram
  • Разработка универсального парсера на PHP

Поддержите мой сайт!

Каждый переведённый донат, мотивирует на создание новых записей и уроков на YouTube

Контакты для связи

Технология на prog-time
Telegram
https://t.me/prog_time_bot