2016-10-05 2 views
0

Ich habe ein Feld, in dem Benutzer ihre Sozialversicherungsnummer ausfüllen muss.Validieren, Vorfüllen und möglicherweise blockieren während der Eingabe

Wenn der Benutzer das Geburtsdatum 14. November 1990

Die soziale Sicherheit mit 90.11.14-XXX.XX beginnt (X 0-9 Zufallszahl darstellt)

Ich simple_form mit

<%= f.input :ssn, 
      label: t('employee.social_security_no'), 
      input_html: { placeholder: "XX.XX.XX - XXX.XX" }%> 

ich mag würde folgendes erreichen:

1) Wie kann ich das Eingabefeld eingestellt mit 90.11.27-_ _ _ voreingestellt. _ _

2) und bestätigt, dass die verbleibenden 5 Zahlen sind eigentlich Zahlen

3) und den Bereich begrenzen, so dass Benutzer kann mehr als 5 zusätzliche Ziffern nicht füllen.

Jede Hilfe, die mich auf den Weg bringt, wird sehr geschätzt.

Antwort

1

Ich bin nicht sicher, was Sie wirklich erreichen wollen, aber Sie können wie folgt vorgehen:.

1) Preset mit ‚Wert‘ Option wie unten (aber Benutzer sollten ‚_‘ löschen Zeichen von selbst)

2) Überprüfen Sie das Zahlenformat mit regulärem Ausdruck auf der Serverseite, fügen Sie diese Zeile in das Modell ein. (Dies bestätigt ganze SSN-Format mit XX.XX.XX XXX.XX)

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

validates :ssn, 
    format: { with: ssn_regexp } 

3) 'maxlength' Option begrenzt die Länge der Zahlen in dem Eingabefeld gefüllt werden.

Verwandte Themen