Indicating to users that they’ve made data entry mistakes on a tabbed form is a UX challenge that can easily be overcome using Sencha’s Ext JS 4.
In the following prototype, I’ve designed a single-page app that displays a list of available forms in a grid at the top of the screen, and a tabbed data entry form (which can grow to many tabs since the form itself is assembled dynamically) that is displayed at the bottom of a “border” layout:
At the bottom of the form, I’ve added a “Validate” button that, when pressed, visually indicates all data input fields that failed validation on the current tab, as well as indicates other tabs where invalid data is present:
The code to implement this feature is actually quite straightforward:
// highlight all invalid fields on formbutton.up('form').isValid();// get panels in tab panelvar panels = button.up('form').query('tabpanel > panel');// loop through each panelfor (var i=0; i // determine if invalid fields are present on the tab var invalids = panels[i].query("field{isValid()==false}"); // set appropriate icons on the tabs if (invalids.length > 0) { panels[i].setIcon('resources/images/error.png'); } else { panels[i].setIcon('resources/images/check.png'); }}
Comments
Post a Comment