0

フィールドに 3 つの数字を入力します。私のマスクは ['009', '099', '999'] のように設定されていました。「001」、「011」、「111」などの値を許可したい。しかし、「023」のような値を入力してフォーカスを外し、この値をもう一度編集して「234」を入力すると、マスクが許可されません。最初の「0」はマスクの「9」と一致するため、この方法では編集できません。

3つの文字が完成するまで、編集を許可するか、残り0で埋める方法はありますか?

4

1 に答える 1

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';
            };
        }
    }
});
于 2015-11-11T11:45:57.553 に答える