我正在使用Rails 3.2.13
和ruby 1.9.3p194
我添加了客户端验证,允许用户在价格字段中仅输入数字[0-9]和小数[。]。我的代码如下:
price.js.coffee
$("input").bind "keypress", (event) ->
regex = new RegExp("^[1-9]\d*(\.\d+)?$")
key = String.fromCharCode((if not event.charCode then event.which else event.charCode))
unless regex.test(key)
false
form.html.haml
= simple_form_for :purchase, url: purchase_path, method: :post do |f|
= f.input :value, as: :integer, label: 'Amount',
input_html: { min: "0.01", value: number_with_precision(precision: 2)}
目前我可以在文本框中输入数字,但我无法添加小数点。我不知道我在哪里弄错了。非常感谢任何帮助.Thnx:)
答案 0 :(得分:1)
我认为问题出在你的正则表达式上。
尝试:
/^[0-9]\d*\.\d{2}$/
这样只允许在小数点后以2位数结尾的价格,例如:
12.99, 13.00, 1.50, 0.30
但不是
12.1, .05, 15.999, 13
希望有所帮助!