2014-01-11 103 views
0

我有一個輸入字段在我想要百分比的Rails應用程序中。所以,我需要:以百分比形式輸入

  1. 只有數字(無符號/週期)
  2. 領域總是有 '%' 可見輸入

表格後:

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

什麼是最好的方法來解決這個問題?有沒有一種方法,我可以在軌道中取消或應該使用JavaScript/jQuery?

回答

1

對於您的問題中的第1項,您應該在模型上使用驗證來處理此問題。像下面這樣的東西應該做到這一點:

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

就第2項,我可能會放在%符號的輸入框外。作爲提示的一部分或作爲輸入框右側的元素。

如果驗證失敗,請首先在頁面上使用有用的驗證消息來工作。如果你想要下載預先提交的javascript消息路由,那應該是一個額外的東西,而不是一個解決方案本身。

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