Simple Form - Rails 4 - Bearbeitung

8

Ich versuche, ein einfaches Formular mit meiner App rails 4 zu verwenden.

Ich habe ein Projektmodell, das ein Bereichsmodell hat. Umfang gehört zum Projekt. Ich habe ein drittes Modell namens Teilnehmer, das zum Geltungsbereich gehört. Scope akzeptiert verschachtelte Attribute für Teilnehmer und Projekt akzeptiert verschachtelte Attribute für den Bereich.

Wenn ich ein neues Projekt erstelle, enthält mein Formular Partials, die verschachtelte Formulare für jeden Bereich und Teilnehmer sind. In meinem Scope-Formular frage ich, ob dieses Projekt Teilnehmer involviert. Wenn die Antwort wahr ist, benutze ich den JS-Formularhelfer, um ein verstecktes Teil anzuzeigen, das das Teilnehmerformular enthält.

Wenn ich nach dem Erstellen des Projekts das Projekt bearbeiten möchte, kehrt die Bearbeitungsfunktion zum Projektformular zurück, das das Kontrollkästchen für den Teilnehmer anzeigt (als wahr), aber das Teilnehmerformular ausblendet.

Meine Frage ist, wenn das Kontrollkästchen des Teilnehmers als wahr markiert ist, sollte das im Projektformular geschachtelte Teilnehmerformular angezeigt werden. Mein JS-Formularhelfer verbirgt dieses Formular, bis das Kästchen als wahr markiert wird, und das funktioniert im Erstellungsmodus gut, aber ich muss das Teilnehmerfeld im Formular des Bereichs deaktivieren und es erneut prüfen, um das Teilnehmerformular zu enthüllen - damit ich diese Felder bearbeiten kann.

Wissen Sie, wie Sie das Teilnehmerformular offenlegen können, wenn die Bereichsfrage, die nach einer Teilnahme fragt, wahr ist, ohne das Formular zu deaktivieren und erneut zu überprüfen?

Mein Code ist wie folgt:

In meinem JS-Formular-Helper habe ich (was das verschachtelte Formular des Teilnehmers verbirgt, es sei denn, die Scope-Frage, die fragt, ob die Teilnahme gesucht wird, ist wahr):

%Vor%

In meinem Umfang habe ich:

%Vor%

Danke

    
Mel 02.06.2015, 05:29
quelle

3 Antworten

4
%Vor%     
Mel 10.06.2015, 08:20
quelle
0

Sie überprüfen derzeit nur, ob das Kontrollkästchen aktiviert ist, wenn es geändert wird. Wenn das Formular jedoch mit dem aktivierten Kontrollkästchen geladen wird, wird das Änderungsereignis nicht ausgelöst und der Code wird nicht ausgeführt.

Um die Prüfung beim Laden der Seite zu starten, fügen Sie so etwas zu Ihrem JS hinzu (verzeihen Sie, dass ich es in JS statt in coffeescript geschrieben habe):

%Vor%

Beachten Sie, dass Sie den anderen Teil des Checks hier nicht benötigen, da standardmäßig das Element #participationrequest ausgeblendet wird.

    
tbrisker 02.06.2015 06:05
quelle
0

Versuchen Sie Folgendes:

%Vor%     
juliobetta 10.06.2015 01:02
quelle