Dates to effect dynamic form behavior
In either case, the Conditional Fields module sounds like it could help you here... from the module page:


  Define dependencies between fields based on their states and values. Conditional Fields for Drupal 7 is an user interface to the new States API, plus the ability to modify fields appearance and behavior on certain conditions when viewing content.


The alternative is harder because you'd need to write your own little module that implements hook_form_alter() that can do custom validation and insert a snippet of jQuery to hide/show elements according to the age being 18 or over.