2016-05-11 8 views
0

Ich habe ein Multi-Step-Formular basierend auf dem Tutorial here erstellt. Es integriert Jquery Validation in den Prozess, um sicherzustellen, dass die Daten sauber sind, bevor sie den Server erreichen. Die Validierung und die mehrstufige Form funktionieren alle wie gewünscht, aber da Jquery Validation die HTML-Tags name statt der id anvisiert, musste ich sie manuell ändern, um die Validierung zu erhalten.target HTML 'Name' Attribut ein Rails Form Builder mit Jquery

rules: { 
         registrant_first_name: { 
         required: true, 
         minlength: 2, 
        }, 

        ... 
     }, 

Und in Form Helfern:

<%= f.text_field :first_name, name: 'registrant_first_name', class: 'form-control' %> 

Doch während dies funktioniert dies sendet meinen params aus dem Registranten Controller und ich würde muß das Modell neu zu konfigurieren, dass die neuen params zu akzeptieren . Die Form reagiert, indem er die Daten zurückgewiesen und sagen Sie die Felder leer sind (was sie technisch sind)

registrant_first_name: John 
registrant_last_name: Doe 
registrant_email: [email protected] 

Während ich bin mir ziemlich sicher, dass ich dieses Problem, indem Sie einfach wieder die Konfiguration des Registranten Modell beheben können, die Parameter zu akzeptieren, Ich frage mich, gibt es eine Möglichkeit, die Jquery-Validierungsregeln auf das Namensattribut zu richten, das vom Formularhelfer generiert wird? (Zur Zeit wirft er einen Fehler)

rules: { 
         registrant[first_name]: { 
         required: true, 
         minlength: 2, 
        }, 

        ... 
     }, 

Und wenn nicht, gibt es keinen Schaden bei der Konfiguration des Modells, diesen Parameter zu ermöglichen, die nicht mehr das registrants Hash gehören werden?

Antwort

2

Ich frage mich, gibt es eine Möglichkeit, die Jquery-Validierungsregeln zu konfigurieren, um das Namensattribut zu adressieren, das vom Formularhelfer generiert wird? (zur Zeit gibt es einen Fehler)

Ja. Umranden Sie den Namen einfach mit Anführungszeichen.

rules: { 
    'registrant[first_name]': { 
     required: true, 
     minlength: 2, 
     .... 

Documentation: Fields with complex names (brackets, dots):

"Wenn Sie Ihre Form von Feldern besteht Namen verwenden, die nicht legal JavaScript Identifikatoren sind, müssen Sie diese Namen zitieren, wenn die rules Option"

+0

Danke. Arbeitete perfekt – Jarrel09

Verwandte Themen