フィールドに 3 つの数字を入力します。私のマスクは ['009', '099', '999'] のように設定されていました。「001」、「011」、「111」などの値を許可したい。しかし、「023」のような値を入力してフォーカスを外し、この値をもう一度編集して「234」を入力すると、マスクが許可されません。最初の「0」はマスクの「9」と一致するため、この方法では編集できません。
3つの文字が完成するまで、編集を許可するか、残り0で埋める方法はありますか?
フィールドに 3 つの数字を入力します。私のマスクは ['009', '099', '999'] のように設定されていました。「001」、「011」、「111」などの値を許可したい。しかし、「023」のような値を入力してフォーカスを外し、この値をもう一度編集して「234」を入力すると、マスクが許可されません。最初の「0」はマスクの「9」と一致するため、この方法では編集できません。
3つの文字が完成するまで、編集を許可するか、残り0で埋める方法はありますか?
フィールドを構成するときに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';
};
}
}
});