价格(浮动)字段的客户端验证

时间:2013-12-10 08:31:28

标签: ruby-on-rails validation coffeescript

我正在使用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:)

1 个答案:

答案 0 :(得分:1)

我认为问题出在你的正则表达式上。

尝试:

/^[0-9]\d*\.\d{2}$/

这样只允许在小数点后以2位数结尾的价格,例如:

12.99, 13.00, 1.50, 0.30

但不是

12.1, .05, 15.999, 13

希望有所帮助!