2016-10-05 2 views
0

사용자가 사회 보장 번호를 입력해야하는 입력란이 있습니다. 사용자의 생년월일 1990입력시 유효성 검사, 미리 채우기 및 차단 가능

사회 보장은-XXX.XX이 90.11.14

내가 simple_form

를 사용하고 (X는 임의의 숫자 0-9를 나타냄)로 시작하는 11 월 14 일 인 경우

<%= f.input :ssn, 
      label: t('employee.social_security_no'), 
      input_html: { placeholder: "XX.XX.XX - XXX.XX" }%> 
나는 다음과 달성하고자하는

:

1) 어떻게 90.11.27-_ _ _ 설정 입력 필드를 사전 설정할 수 있습니다. _ _

2) 나머지 5 개 개의 번호가 숫자

3 실제로 있는지 확인)하고, 사용자가 5 개 이상의 추가 숫자를 기입 할 수 있도록 필드를 제한한다.

나를 도울 수있는 도움을 주시면 감사하겠습니다.

답변

1

난 당신이 정말있어 달성하고자하는 것을 잘 모르겠지만, 다음과 같이 수행 할 수 있습니다. 같은 아래 '값'옵션을

1) 프리셋 (그러나 사용자가 삭제해야합니다 '_'문자로 자체)

<%= f.input :ssn, 
    label: t('employee.social_security_no'), 
    input_html: { value: "#{@user.birthdate.strftime('%y.%m.%d')}-___.__" }, 
    maxlength: 15 
%> 

2) 서버 측에서 정규 표현식으로 숫자 형식을 확인하므로 모델에이 행을 추가하십시오.

ssn_regexp = /\A\d{2}\.\d{2}\.\d{2}-\d{3}\.\d{2}\z/ 

validates :ssn, 
    format: { with: ssn_regexp } 

3) "최대 길이"옵션 번호의 길이가 입력 필드에 채워 한계 (이 XX.XX.XX-XXX.XX와 SSN 포맷 전체 유효화).