Are you sure you want to do this though? What if the user makes a typo and want to correct it and he's typing in the next field before he knows it? I can only speak for myself but I find things like this annoying and often confusing. As an example, maybe I don't fill in the fields in the order you have them but in the order I have them in the program where I store personal data.
Just wanted to warn you against helping the user too much. It can often have the opposite effect.