Perhaps you want to collect the email addresses of all new users, but only if they explicitly want your spam.
var Example1 = new Grimoire( document.getElementById('example_1') ); var newUserCheck = document.getElementById('is_new_user'); var noSpamCheck = document.getElementById('no_spam'); // Create a rule for collecting an email address // when a new user wants spam var emailRule = Example1.whenChecked(newUserCheck) .whenUnchecked(noSpamCheck); emailRule.reveal(document.getElementById('email_field')); // We can build on top of emailRule: // Show the "Thank you" message when we collect the user's // email, and the value is a valid address emailRule.whenValue('email', function(val) { return !!val.match(/^[^@]{2,}@[^@]{2,}\.[^@]{2,}$/); }).reveal(document.getElementById('thanks'));
Sometimes, inputs are only relevant when users make certain selections. Selecting “other” might need further details.
What is your relation?
var Example2 = new Grimoire( document.getElementById('example_2') ); // Show the explanation field when the user selects "other" Example2.whenValue('relationship', 'other') .reveal(document.getElementById('other_context'));