我正在尝试为输入类型号添加验证以仅接受整数。
我向元素添加了pattern="\d*"
。对于输入10.12
,10.13
,它工作正常。 但是输入10.
我打印了html输入的值。它是10
而不是10.
。
<script>
function getValue(){
alert(document.getElementById("numberInput").value);
}
</script>
<input type="number" id="numberInput"> </input>
<button onclick="getValue();">
理想情况下,它应将10.
视为无效输入。
答案 0 :(得分:0)
粘贴确实很棘手。我提出了以下建议:
function setValid(target) {
const val = target.value;
// Remove value, as setting the same value has no effect.
target.value = '';
// Reset value on the next tick
requestAnimationFrame(() => target.value = val);
}
<form action="#" method="post">
Numbers: <input name="num"
type="number"
min="1"
step="1"
onblur="setValid(this)"
onpaste="requestAnimationFrame( () => setValid(this) )"
onkeypress="return event.charCode >= 48 && event.charCode <= 57"
title="Numbers only">
<input type="submit">
</form>
它的作用如下:
可能还有更好的解决方案。
此答案基于kneeki's answer here。