From 2fa8c3f88a837d94e8f2fe987fb150a4a82543b0 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Sat, 23 Nov 2024 15:59:29 +0100 Subject: [PATCH] feat: refs #8163 limit with maxLength --- src/components/common/VnInput.vue | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/common/VnInput.vue b/src/components/common/VnInput.vue index 1aa36bf4f..7099295f8 100644 --- a/src/components/common/VnInput.vue +++ b/src/components/common/VnInput.vue @@ -88,6 +88,7 @@ const mixinRules = [ const handleKeydown = (e) => { if (e.key === 'Backspace') return; + if ($props.insertable && e.key.match(/[0-9]/)) { handleInsertMode(e); } @@ -97,20 +98,19 @@ const handleInsertMode = (e) => { e.preventDefault(); const input = e.target; const cursorPos = input.selectionStart; - + const { maxlength } = vnInputRef.value; let currentValue = value.value; if (!currentValue) currentValue = e.key; - const newValue = Number(e.key); - if (newValue && !isNaN(newValue)) { + const newValue = e.key; + if (newValue && !isNaN(newValue) && cursorPos < maxlength) { value.value = currentValue.substring(0, cursorPos) + newValue + currentValue.substring(cursorPos + 1); - - nextTick(() => { - input.setSelectionRange(cursorPos + 1, cursorPos + 1); - }); } + nextTick(() => { + input.setSelectionRange(cursorPos + 1, cursorPos + 1); + }); };