CRM tabs from top-to-bottom, left-to-right
( within a section; after which it moves on to the next section ):
Example 1: ( CRM Tab Order )
Field1 Field3
Field2 Field4
Most other applications tab from left-to-right, top-to-bottom:
Example 2: ( Normal Tab Order )
Field1 Field2
Field3 Field4
How the Tab Order Works
Each data entry field has a property called tabIndex which is a number ( integer ) that instructs the window the order in which to move the cursor between the various fields. The order is from from lowest to highest, i.e., from 1 to 10,000, or whatever.
This means your first field has the lowest tabIndex value and your last field as the highest.
Microsoft CRM appears to set the first data entry field tabIndex to 1000 and increases the tabIndex by 10 for each subsequent field. For example:
Example 3: ( CRM Tab Order, with TabIndex Values )
Field1: TabIndex=1000 Field3: TabIndex=1020
Field2: TabIndex=1010 Field4: TabIndex=1030
Changing the Tab Order
In certain cases, you may wish to change the tab order so that users are not so confused by the change ( and you as the form designer are not confused as to where and how to place your fields ). All we need is a little JavaScript code in the Form's OnLoad event, and we're set:
crmForm.all.Field1.tabIndex = 1000;
crmForm.all.Field3.tabIndex = 1010;
crmForm.all.Field2.tabIndex = 1020;
crmForm.all.Field4.tabIndex = 1030;
Note: replace Fieldx with the schema name of the field and leave the rest as is.
Which produces the following Tab Order:
Example 3: ( Tab Order Reset )
Field1: TabIndex=1000 Field3: TabIndex=1010
Field2: TabIndex=1020 Field4: TabIndex=1030
Final Notes:
Setting the tabIndex to 0 will result in the field being ignored by the tab order. While you don't run into this requirement often, it is there if you need it.