Я не могу изменить свое значение с помощью маски ввода

Я хочу заполнить поле тремя числами. Моя маска была настроена так: ['009', '099', '999']. Я хочу разрешить такие значения, как «001», «011» или «111». Но когда я ставлю такие значения, как «023» и убираю фокус, и пытаюсь снова отредактировать это значение, чтобы поставить «234», маска не позволяет. Я считаю, что мой первый «0» совпадает с «9» маски, поэтому я не могу редактировать.

Есть ли способ разрешить издание или заполнить 0, оставшиеся до завершения трех персонажей?


person Giovanni Sá    schedule 05.08.2015    source источник


Ответы (1)


Просто используйте параметр onBeforeWrite при настройке поля. Эта опция позволяет предварительно обрабатывать данные перед записью в поле.

Предположим, у вас есть текстовое поле с именем hello.

<input type="text" name="hello" id="hello">

Чтобы заполнить поле ведущими нулями, замените маскированные значения параметра буфера нулями.

$("#hello").inputmask({
    mask: "999",
    numericInput: true,
    onBeforeWrite: function (event, buffer, caretPos, opts) {
        if (event !== undefined && event.type === "blur") {
            for (var i=0; i<buffer.length; i++) {
                if (buffer[i] == "_")
                    buffer[i] = '0';
            };
        }
    }
});
person Alan CN    schedule 11.11.2015