javascript - 如何在输入类型编号中使用替换 javascript 删除点?

标签 javascript jquery input

如何在输入类型数字中使用替换 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/

相关文章:

Javascript 创建方法 - 如何输出

javascript - Jquery脚本没有在函数内部运行

javascript - 检测 iPad/iPhone 电源按钮和 iPad/iPhone 按钮

javascript - 从parentNode div拖放音频数据

javascript - JSON 无法将对象解码为字符串类型的 GO 值

javascript - 无法将日期选择器应用于使用 .load 添加到应用程序的 html 页面上的字段

javascript - Highcharts 根据数据系列值自定义显示工具提示

Java - 当用户按下按钮时暂停 for 循环并恢复迭代

IE8 的 Javascript 占位符不起作用

c - 除非找到空字符串,否则在 C 中获取字符串输入