- Framework7 Tutorial
- Framework7 - Home
- Framework7 - Overview
- Framework7 - Environment
- Framework7 Components
- Framework7 - Layouts
- Framework7 - Navbars
- Framework7 - Toolbars
- Framework7 - Search Bar
- Framework7 - Status Bar
- Framework7 - Side Panels
- Framework7 - Content Block
- Framework7 - Layout Grid
- Framework7 - Overlays
- Framework7 - Preloaders
- Framework7 - Progress Bar
- Framework7 - List Views
- Framework7 - Accordion
- Framework7 - Cards
- Framework7 - Chips
- Framework7 - Buttons
- Framework7 - Action Button
- Framework7 - Forms
- Framework7 - Tabs
- Framework7 - Swiper Slider
- Framework7 - Photo Browser
- Framework7 - Autocomplete
- Framework7 - Picker
- Framework7 - Calendar
- Framework7 - Refresh
- Framework7 - Infinite Scroll
- Framework7 - Messages
- Framework7 - Message Bar
- Framework7 - Notifications
- Framework7 - Lazy Load
- Framework7 Styling
- Framework7 - Color Themes
- Framework7 - Hairlines
- Framework7 Templates
- Framework7 - Templates Overview
- Framework7 - Auto Compilation
- Framework7 - Template7 Pages
- Framework7 Fast Clicks
- Framework7 - Active State
- Framework7 - Tap Hold Event
- Framework7 - Touch Ripple
- Framework7 Useful Resources
- Framework7 - Quick Guide
- Framework7 - Useful Resources
- Framework7 - Discussion
Framework7 - Form Storage JavaScript API
Description
Form storage can be achieved by using JavaScript API. Here the Framework7 invokes formToJSON on any input change and formFromJSON on pageInit event. All forms data are stored in local storage with keys. The App's methods to manage these local storage keys with form data are listed below −
S.No | Classes & Description | Parameters |
---|---|---|
1 | myApp.formGetData(formId) When you open an animation, this event will get fired. |
|
2 | myApp.formDeleteData(formId) When the opening of an animation is completed, this event will get fired. |
|
3 | myApp.formStoreData(formId, formJSON) When you close an animation, this event will get fired. |
|
Example
The following example demonstrates the use of form storage JavaScript API which stores data in local storage in Framework7 −
<!DOCTYPE html> <html> <head> <meta name = "viewport" content = "width = device-width, initial-scale = 1, maximum-scale = 1, minimum-scale = 1, user-scalable = no, minimal-ui" /> <meta name = "apple-mobile-web-app-capable" content = "yes" /> <meta name = "apple-mobile-web-app-status-bar-style" content = "black" /> <title>Form storage JavaScript API</title> <link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.min.css" /> <link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.colors.min.css" /> </head> <body> <div class = "views"> <div class = "view view-main"> <div class = "pages"> <div data-page = "home" class = "page navbar-fixed"> <div class = "navbar"> <div class = "navbar-inner"> <div class = "left"> </div> <div class = "center">Form Storage API</div> <div class = "right"> </div> </div> </div> <div class = "page-content"> <form id = "myform" class = "list-block store-data"> <ul> <li> <div class = "item-content"> <div class = "item-inner"> <div class = "item-title label">Name</div> <div class = "item-input"> <input type = "text" name = "name" placeholder = "Enter your name"> </div> </div> </div> </li> <li> <div class = "item-content"> <div class = "item-inner"> <div class = "item-title label">E-mail</div> <div class = "item-input"> <input type = "email" name = "email" placeholder = "Enter your e-mail"> </div> </div> </div> </li> <li> <div class = "item-content"> <div class = "item-inner"> <div class = "item-title label">Gender</div> <div class = "item-input"> <select name = "gender"> <option value = "male" selected>Male</option> <option value = "female">Female</option> </select> </div> </div> </div> </li> <li> <div class = "item-content"> <div class = "item-inner"> <div class = "item-title label">Switch</div> <div class = "item-input"> <label class = "label-switch"> <input type = "checkbox" name = "switch" value = "yes" /> <div class = "checkbox"></div> </label> </div> </div> </div> </li> </ul> </form> <div class = "content-block"> <p><a href = "#" class = "button button-fill button-round color-blue get-storage-data">Get Data</a></p> <p><a href = "#" class = "button button-fill button-round color-red delete-storage-data">Delete Data</a></p> <p><a href = "#" class = "button button-fill button-round color-green save-storage-data">Save Data</a></p> </div> </div> </div> </div> </div> </div> <script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/js/framework7.min.js"></script> <script> var myApp = new Framework7(); var $$ = Dom7; $$('.get-storage-data').on('click', function() { var storedData = myApp.formGetData('myform'); if(storedData) { alert(JSON.stringify(storedData)); } else { alert('Yet there is no stored data for this form. Please try to change any field') } }); $$('.delete-storage-data').on('click', function() { var storedData = myApp.formDeleteData('myform'); alert('Form data is deleted') }); $$('.save-storage-data').on('click', function() { var storedData = myApp.formStoreData('myform', { 'name': 'William Smith', 'email': 'williamsmith@tutorialspoint.com', 'gender': 'male', 'switch': ['yes'], }); alert('Form data is replaced, refresh the browser to reflect the changes') }); </script> </body> </html>
Output
Let us carry out the following steps to see how the above given code works −
Save the above given HTML code as forms_storage_javascript.html file in your server root folder.
Open this HTML file as http://localhost/forms_storage_javascript.html and the output is displayed as shown below.
When you enter the details in the form and click on the ‘Get data’ button, all your field values will be converted to JSON format and is displayed to you.
When the ‘Save data’ button is clicked, the forms data is saved in local storage.
When the ‘Delete data’ button is clicked, all the forms data gets deleted.