如何在输入类型数字中使用替换 javascript 删除点?
当我尝试将 999.
填入输入时。为什么它不删除点 。
我该怎么做?
<input name="test" id="iid" onKeyUp="test_fn(this.value)" type="number">
<script>
function test_fn(test_value){
var test_value = test_value.replace(/[^0-9]+/g, "");
document.getElementById("iid").value = test_value;
}
</script>
最佳答案
看这个fiddle
我不知道这种行为的原因。我解决这个问题的方法是,每次按下一个键,我都会清除input
的内容。
我已经将下面给定的行添加到您的脚本中,每次按下一个键都会重置 input
。
document.getElementById("iid").value = "";
请看下面的片段
function test_fn(test_value){
var test_value = test_value.replace(/[^0-9]+/g, "");
document.getElementById("iid").value = "";
document.getElementById("iid").value = test_value;
}
<input name="test" id="iid" onKeyUp="test_fn(this.value)" type="number">
更新
正如@AssafiCohen-Arazi 在他的评论中提到的,如果有人一直按 .
键那么久,这个答案将被证明是不正确的。因此,更好的解决方案是 @James answer 中提到的解决方案。以上。
更新 2
找出导致结果不稳定的原因。这都是因为您的 input
类型是数字。您只需将 input
类型更改为 text
,您的代码就会完美运行。
查看此 fiddle
请看下面的片段
function test_fn(test_value){
var test_value = test_value.replace(/[^0-9]/g, "");
document.getElementById("iid").value = test_value;
}
<input name="test" id="iid" onKeyUp="test_fn(this.value)" type="text">
关于javascript - 如何在输入类型编号中使用替换 javascript 删除点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45774578/