#Formalize ###A jQuery plugin for intra-form navigation (demo)
For setting up and navigating through forms divided up into separate sections. Woohoo!
##Requirements All you need is love kill jQuery.
##Usage On any page, include a reference to formalize.js, and on any webform(s), call $('#myForm').formalize().
But of course there's more to it than that.
##HTML Structure
Formalize assumes that you have broken your form up into fieldsets, and that within each fieldset, the stuff you want hidden will be put in .form-section wrappers (so that while a fieldset's content is collapsed, its legend can still be visible). It also assumes that your previous/next navigation elements are, respectively, .form-nav-prev and .form-nav-next.
<form> <fieldset> <legend>Section 1</legend> <div class="form-section"> // some labels, inputs, etc. <nav> <span class="form-nav-prev">Prev</span> <span class="form-nav-next">Next</span> </nav> <div> </fieldset> // more fieldsets... </form>This can be changed by passing in options.
##Options: Choose Your Own Behavior
To use:
$('#myForm').formalize({ wrapper: '.dre', timing: 300 });| Option | Default | Type | Description |
|---|---|---|---|
section | fieldset | String | Each of these elements is a separate "step" in your form. Should be a class or type of DOM element. |
wrapper | .form-section | String | Within each section, the .form-section is the element that is actually collapsed and expanded. |
navType | section | String | section means that the form has one set of nav elements per section; the other option is global, for when there is one nav element that controls the entire form. |
prevNav | .form-nav-prev | String | Element(s) that move you to previous form sections. |
nextNav | .form-nav-next | String | Element(s) that move you to subsequent form sections. |
timing | 0 | int | How long expanding/collapsing takes. |
nextCallback | null | function | A function to be performed when you attempt to navigate to the next form section. Any function that you use here must return true if you want to proceed; if false, the navigation will abort and you will not move to the next section. |
prevCallback | null | function | A function to be performed when you attempt to navigate to the previous form section. Same as with nextCallback, return true if you want the navigation to execute and false if you want it to abort. |
##Demo Here! One demo form has navigation elements within each section; the other has one global set of navigation elements.
##Formalize ♥s Validation One thing I really like about breaking up forms is that you can validate each section individually. Checking and correcting errors is a lot more manageable for 5-6 fields than for 20. You can use the nextCallback option to validate the currently open section. For any function called by nextCallback or prevCallback, the function must return true in order for the navigation to occur. If not, Formalize will assume that there was an issue and will not execute the navigation.
##License Formalize is © 2014 Violet Peña under the MIT License.
Let me know if you use it somewhere! :)