Ruby on rails 3 Rails 3-使文本字段仅接受数值
如何使文本字段仅接受数值?如果我按下字母或符号,文本字段不应填充,它应只允许数字Ruby on rails 3 Rails 3-使文本字段仅接受数值,ruby-on-rails-3,validation,form-helpers,Ruby On Rails 3,Validation,Form Helpers,如何使文本字段仅接受数值?如果我按下字母或符号,文本字段不应填充,它应只允许数字 有没有rails方法可以做到这一点?在服务器端验证数值性: class SomeModel validates :some_column, :numericality => {:only_integer => true} end 在客户端,通过javascript添加一个输入掩码 使用number\u field\u标签,这将生成一个HTML5数字字段 @clyfe的答案是好的,但该插件不适用于H
有没有rails方法可以做到这一点?在服务器端验证数值性:
class SomeModel
validates :some_column, :numericality => {:only_integer => true}
end
在客户端,通过javascript添加一个输入掩码
使用
number\u field\u标签
,这将生成一个HTML5数字字段
@clyfe的答案是好的,但该插件不适用于HTML5
type=number
元素。下面是一些只允许整数的快速jQuery代码:
$("input[type=number]").keypress(function(event) {
if (!event.charCode) return true;
ch = String.fromCharCode(event.charCode);
return (/[\d]/.test(ch));
});
要允许小数或逗号,请使正则表达式看起来更像插件中的正则表达式,例如:
(请注意,不同的地区对小数和逗号有不同的约定,因此只允许数字可能更安全:-)
另外请注意,这是一个解决此处提到的Chrome bug的方法:
$("input[type=number]").keypress(function(event) {
if (!event.charCode) return true;
ch = String.fromCharCode(event.charCode);
return (/[\d]/.test(ch));
});
/^((\d{1,3}(\,\d{3})*(((\,\d{0,2}))|((\.\d*)?)))|(\d+(\.\d*)?))$/