我不确定最好的方法是什么。在我的Ruby on rails应用程序中,我有数字文本框。
他们可以输入30.5,30,000,3,000,000等内容
但是如何阻止他们输入30.3.1.1.1
,我只想将其转换为0.
目前,如果他们在字段中输入该字段并在字段外输入标签,则会在文本字段中显示“Infinity
”。
答案 0 :(得分:0)
使用Keydown事件读取已按下的字符的ASCII代码。
输入"."
后,将变量设置为表示该变量的标志。
如果是"。"再次按下,只需用 null 替换按下的ASCII。
答案 1 :(得分:0)
你可以使用在每个keyup上触发的正则表达式来实现这一点 - 类似这样:
var input = document.getElementById("foo")
input.onkeyup = function(ev){
input.value = input.value.replace(/([0-9]*\.[0-9]*).*/, "$1")
}
在这里试试: https://jsfiddle.net/8bsx7c9z/
在jQuery中它会是这样的:
var input = $("#foo")
input.on("keyup", function(ev){
input.val(input.val().replace(/([0-9]*\.[0-9]*).*/, "$1"))
})
答案 2 :(得分:0)