将逗号放在数字字段中

时间:2016-01-19 12:38:02

标签: javascript ruby-on-rails ruby-on-rails-4 rails-activerecord

我有很多形式的数字字段用于输入相当大的数字。我正在使用一些javascript自动放置逗号来分隔数字,以便在表单中更容易阅读。 问题是,当字段保存到数据库时,文本字段中的逗号使其成为非整数,因此它只保存第一组数字(从左到右)。遇到逗号。

我的问题是:处理此问题的最佳方法是什么?我认为它必须是一个相对常见的情况,虽然我无法找到一个简单的答案。

我已尝试添加before validation方法去除逗号,但此时,数字已被更改。如果我绝望,我想我可以:

1)在我的视图中添加一个虚拟字段并隐藏整数字段

2)抓取并更改控制器中的参数

3)在提交之前覆盖提交按钮以运行逗号检查脚本。

但所有这些似乎都过分了。有没有更好的做法呢?

提前致谢。

3 个答案:

答案 0 :(得分:0)

您可能需要将数字保留为数据库中的整数,但只需使用逗号显示。请参阅此链接How to print a number with commas as thousands separators in JavaScript

答案 1 :(得分:0)

如何允许字段为字符串字段,然后在.to_i方法上进行标记。

修改

实际上你需要创建一个处理这些输入字段的方法并将其称为before_save或其他东西

inputname do |i| 
    i.delete!(',').to_i
end

答案 2 :(得分:0)

最终偶然发现了答案。有一个名为autonumeric的精彩jquery插件,可以格式化文本框的外观,但不会格式化其value属性。它甚至出现在well maintained rails gem的STOOPID中 - 易于使用且记录良好。看看吧!

PS,它与简单形式f.input的效果不佳。您仍然可以使用简单表单,但在要格式化的任何字段上,请改用f.text_field