以百分比形式输入

时间:2014-01-11 08:42:37

标签: javascript jquery ruby-on-rails ruby-on-rails-3 math

我在rails app中有一个输入字段,我想要百分比。所以我需要:

  1. 仅限数字(无符号/句号)
  2. 输入
  3. 后始终显示'%'的字段

    形式:

    = form_for @model do |f|
      = f.text_field :price, :maxlength => 3
      = f.submit
    

    最好的办法是什么?有没有办法我可以在rails中使用它,或者我应该使用javascript / jquery吗?

3 个答案:

答案 0 :(得分:1)

对于问题中的第1项,您应该使用模型上的验证来处理此问题。像下面这样的东西应该这样做:

validates :percentage_field, 
            numericality: { only_integer: true, 
                            greater_than_or_equal_to: 0, 
                            less_than_or_equal_to: 100 }

对于第2项,我可能会将%符号放在输入框之外。作为提示的一部分或作为输入框右侧的元素。

如果验证失败,请首先在页面上使用有用的验证消息。如果你想了解一下花哨的预提交javascript消息路由,那么这应该是一个额外的,而不是一个独立的解决方案。

答案 1 :(得分:0)

嘿我用这个插件来解决它。 https://github.com/ruoso/jquery-regex-mask-plugin

为了实现它,我写了

$('.float').regexMask(/^\d+(,\d+)?$/);

超级简单。

答案 2 :(得分:0)

如果您仍然决定在JS方面解决问题,您可以使用parseIntparseFloat等原生函数。他们会解析您的字符串值,直到the first "invalid" character.

E.g。

parseFloat('10.1%')  -> 10.1
parseInt('10%')      -> 10
parseInt('10.1%')    -> 10
parseFloat('10.1 %') -> 10.1
相关问题