2014-01-11 2 views
0

필자는 비율을 원하는 레일 입력란에 입력 필드가 있습니다. 그래서 내가해야합니다 :입력 양식 비율 가져 오기

  1. 숫자 만 (NO 기호/기간)
  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 번 항목의 경우 입력 상자 밖에 % 기호를 넣을 수 있습니다. 프롬프트의 일부로 또는 입력란의 오른쪽에있는 요소로.

유효성 검사가 실패하면 페이지에서 유용한 유효성 확인 메시지로 먼저 작업하십시오. 당신이 멋진 제출 자바 스크립트 메시지 경로를 내려 가고 싶다면, 그 자체의 솔루션보다는 이것의 위에 여분이어야합니다.

0

JS 측에서도 여전히 문제를 해결하기로 결정한 경우 parseIntparseFloat과 같은 기본 기능을 사용할 수 있습니다. 문자열 값을 구문 분석하여 the first "invalid" character.

예 :

parseFloat('10.1%') -> 10.1 
parseInt('10%')  -> 10 
parseInt('10.1%') -> 10 
parseFloat('10.1 %') -> 10.1 
관련 문제