jquery - 阻止用户输入多个小数点

时间:2015-06-23 10:13:55

标签: jquery ruby-on-rails

我不确定最好的方法是什么。在我的Ruby on rails应用程序中,我有数字文本框。

他们可以输入30.5,30,000,3,000,000等内容

但是如何阻止他们输入30.3.1.1.1,我只想将其转换为0.

目前,如果他们在字段中输入该字段并在字段外输入标签,则会在文本字段中显示“Infinity”。

3 个答案:

答案 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)

当您使用Ruby on Rails时,您可以在模型中进行验证。

validates :points, numericality: true

有关详细信息,请查看document