我想只得到正的值,有什么方法来防止它只使用html 请不要建议验证方法


当前回答

这里有一个解决方案,我工作最好的一个QTY字段,只允许数字。

// Only allow numbers, backspace and left/right direction on QTY input
    if(!((e.keyCode > 95 && e.keyCode < 106) // numpad numbers
        || (e.keyCode > 47 && e.keyCode < 58) // numbers
        || [8, 9, 35, 36, 37, 39].indexOf(e.keyCode) >= 0 // backspace, tab, home, end, left arrow, right arrow
        || (e.keyCode == 65 && (e.ctrlKey === true || e.metaKey === true)) // Ctrl/Cmd + A
        || (e.keyCode == 67 && (e.ctrlKey === true || e.metaKey === true)) // Ctrl/Cmd + C
        || (e.keyCode == 88 && (e.ctrlKey === true || e.metaKey === true)) // Ctrl/Cmd + X
        || (e.keyCode == 86 && (e.ctrlKey === true || e.metaKey === true)) // Ctrl/Cmd + V
    )) {
        return false;
    }

其他回答

这个代码对我来说工作得很好。你能查一下吗:

<input type="number" name="test" min="0" oninput="validity.valid||(value='');">
oninput="this.value=(this.value   < Number(this.min) || this.value   > Number(this.max))  ? '' : this.value;"

我想允许小数,如果输入负数,不清除整个输入。这在铬至少工作良好:

<input type="number" min="0" onkeypress="return event.charCode != 45">

限制数字类型中的字符(-)和(e)

<input type="number" onkeydown="return event.keyCode !== 69 && event.keyCode !== 189" />

演示:https://stackblitz.com/edit/typescript-cwc9ge?file=index.ts

简单地使用min="0"

< v-text-field v模型=“abc” 类= " ml-1 rounded-0” 概述了 密集的 label = "数量" type = "数量" min = " 0 " > < / v-text-field >