Не мога да редактирам стойността си с inputmask

Искам да попълня поле с три числа. Маската ми беше конфигурирана като: ['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