我在rails app中有一个输入字段,我想要百分比。所以我需要:
形式:
= form_for @model do |f|
= f.text_field :price, :maxlength => 3
= f.submit
最好的办法是什么?有没有办法我可以在rails中使用它,或者我应该使用javascript / jquery吗?
答案 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方面解决问题,您可以使用parseInt
和parseFloat
等原生函数。他们会解析您的字符串值,直到the first "invalid" character.
E.g。
parseFloat('10.1%') -> 10.1
parseInt('10%') -> 10
parseInt('10.1%') -> 10
parseFloat('10.1 %') -> 10.1