Well, sometimes customers have very special requirements. In this case the customer wants to show or hide applicants for a seminar dynamically.
Have a look how this should work:
It is not really possible to add fields dynamically to WFFM, so we decided to add 4 applicant-fields (Salutation, Firstname, Surname) in WFFM.
The JavaScript for the Add-Applicants-Button and the Remove-Buttons looks like this:
var rightSection = $('div.section-right'); $(rightSection).on('click', '.scfAddAttendantButton', function() { var hiddenFields = $(this).parent().find('div.thirdAvailableWidth[style="display: none;"]'); $(hiddenFields).each(function(index, element) { $(element).show(); if (index == 2) { return false; } return true; }); if (hiddenFields.length == 3) { $('div.section-right .scfAddAttendantButton').hide(); } }); $('.seminar-registration-content div[class*="name.Nachname"] .remove-button').click(function() { var hiddenFields = $(this).parent().parent().find('div.thirdAvailableWidth[style="display: none;"]'); $(this).parent().prevUntil('div[class*="name.Nachname"]').val(''); $(this).parent().prevUntil('div[class*="name.Nachname"]').hide(); $(this).parent().hide(); if (hiddenFields.length == 0) { $('div.section-right .scfAddAttendantButton').show(); } });
Simple isn’t it? 🙂
To show / hide fields when text is entered in any field we use WFFM-Rules:
A short explanation to the field values: ^$ is a regular exprission for string.Empty, ^(?!\s*$).+ is a regular expression for !string.Empty.
The WFFM rules are a mighty way to interact with the form! It is also possible to restore values from the Analytics Cookie:
Next part is a custom Save-Action. Stay tuned.
Regards Dirk