Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как сделать маску телефона в input c +7(___) без jQuery (https://javascript.ru/forum/dom-window/63870-kak-sdelat-masku-telefona-v-input-c-7-___-bez-jquery.html)

рони 15.04.2021 15:53

Цитата:

Сообщение от romveld
а то сейчас получается меняется,

где код?

romveld 15.04.2021 16:01

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
    <input  value="+7(___)___-____">
    <script>
window.addEventListener("DOMContentLoaded", function() {
function setCursorPosition(pos, elem) {
    elem.focus();
    if (elem.setSelectionRange) elem.setSelectionRange(pos, pos);
    else if (elem.createTextRange) {
        var range = elem.createTextRange();
        range.collapse(true);
        range.moveEnd("character", pos);
        range.moveStart("character", pos);
        range.select()
    }
}

function mask(event) {
    var matrix = this.defaultValue,
        i = 0,
        def = matrix.replace(/\D/g, ""),
        val = this.value.replace(/\D/g, "");
        def.length >= val.length && (val = def);
    matrix = matrix.replace(/[_\d]/g, function(a) {
        return val.charAt(i++) || "_"
    });
    this.value = matrix;
    i = matrix.lastIndexOf(val.substr(-1));
    i < matrix.length && matrix != this.defaultValue ? i++ : i = matrix.indexOf("_");
    setCursorPosition(i, this)
}

    var input = document.querySelector("input");
    input.addEventListener("input", mask, false)
});
  </script>
</body>

</html>

рони 15.04.2021 16:16

romveld,
что нужно сделать, чтоб изменить +7?

romveld 15.04.2021 16:43

https://prnt.sc/11g6c1x нужно поставить курсор в самое начало инпута и начать печатать, он изменится.

рони 15.04.2021 18:47

romveld,
ок, понятно.

Alex_medik 06.08.2021 11:00

Добрый день. Скрипт отличный - спасибо. Но подскажите, как сделать так, чтобы в модальном окне также была проверка.

рони 06.08.2021 12:30

Цитата:

Сообщение от Alex_medik
подскажите, как сделать так, чтобы в модальном окне также была проверка.

в функцию открытия окна, добавить установку проверки.

Alex_medik 06.08.2021 13:08

Отлично... теперь бы понять как это)

рони 06.08.2021 13:11

Alex_medik,

[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Alex_medik 06.08.2021 13:23

думаю в эту функцию нужно вставить

qfstartModalform: function(d) {
            var box = QuickForm.qfstartoverlay(d.class);
            $.ajax({
                type: 'POST',
                url: d.url,
                data: {
                    option: "com_qf3",
                    task: "ajax.qfmodal",
                    id: d.project
                },
                success: function(html) {
                    box.append(html);
                    QuickForm.verticallycentr(box, true);
                    var form = $('form', box)[0];
                    QuickForm.initiate(form);
                }
            });


Часовой пояс GMT +3, время: 07:40.