Javascript 在数字字段中放置逗号
我有很多带有数字字段的表单,用于输入相当大的数字。我正在使用一些javascript自动放置一个逗号来分隔数字,以便于在表单中阅读问题是,当字段保存到数据库中时,文本字段中的逗号使其成为非整数,因此它只保存第一组数字(从左到右),然后再使用逗号 我的问题是:处理这个问题的最佳方法是什么?我想这一定是一种比较普遍的情况,尽管我真的找不到一个简单的答案 我尝试过在验证之前添加一个Javascript 在数字字段中放置逗号,javascript,ruby-on-rails,ruby-on-rails-4,rails-activerecord,Javascript,Ruby On Rails,Ruby On Rails 4,Rails Activerecord,我有很多带有数字字段的表单,用于输入相当大的数字。我正在使用一些javascript自动放置一个逗号来分隔数字,以便于在表单中阅读问题是,当字段保存到数据库中时,文本字段中的逗号使其成为非整数,因此它只保存第一组数字(从左到右),然后再使用逗号 我的问题是:处理这个问题的最佳方法是什么?我想这一定是一种比较普遍的情况,尽管我真的找不到一个简单的答案 我尝试过在验证之前添加一个方法来去掉逗号,但是在那一点上,数字已经改变了。如果我绝望了,我想我可以: 1) 将虚拟字段添加到我的视图中并隐藏整数字段
方法来去掉逗号,但是在那一点上,数字已经改变了。如果我绝望了,我想我可以:
1) 将虚拟字段添加到我的视图中并隐藏整数字段
或
2) 抓取并更改控制器中的参数
或
3) 在提交之前,覆盖提交按钮以运行逗号加密脚本
但所有这些似乎都太过分了。在这方面有更好的做法吗
提前感谢。您可能需要在数据库中将数字保留为整数,但只需用逗号显示即可。请查看此链接如何允许字段为字符串字段,然后在.to_i
方法上进行标记
编辑
实际上,您需要创建一个处理这些输入字段的方法,并在保存之前调用它
inputname do |i|
i.delete!(',').to_i
end
终于偶然发现了答案。有一个很棒的jquery插件,名为格式化文本框的外观,但不格式化其值属性。它甚至有一个简单易用且有很好的文档记录的版本。看看
另外,它不能很好地与简单表单的f.input
配合使用。您仍然可以使用简单表单,但在任何要格式化的字段上,请改用f.text\u field
。或在服务器上将其解析为字符串,并删除其中的逗号。不幸的是,似乎一旦到达模型,该数字已被修改,因此不再有用。即使是验证之前的也发生得太晚了。