But there are some definite cases where it does not serve its purpose well.
For example, your bank routing number is 9 digits, while your account number is 9-16 digits. Most of us don't know our bank routing number off the top of our head, so we go and find our mostly disused and dusty checkbook. Then we painstakingly copy the routing number into the field. And put the account number in the next field.
Now, what happens when you're copying these numbers? I'm guessing most of us are looking at one of two things: the keyboard, or the check we're copying from. Why the keyboard, when we're all touch typers? Because most of us touch type numbers with a num pad, and many laptops don't have them.
So what happens if the form look like this?
|Confirm Routing Number
|Confirm Account Number
So the user enters their bank name, realizes they need a check, finds one, enters their routing number, then their account number. And then notices there are two more fields. Oops. So they copy their account number out of the "Confirm Routing Number" field into the account number field.
So at this point, he thinks he's good to go. The confirmation fields were copy pasted, because honestly, he was very careful typing in those digits, and he's more likely to make an error typing them again anyway.
The next screen has a quick summary that doesn't include his account number, and his info is in. He pays his Chase Credit Card bill.
Only he's going to have his payment refused, and a late fee added, because of field validation that he never noticed occurred. Nothing warned him of that last digit disappearing off his account number before he copied it.
Granted the user made a pretty big mistake not confirming ONE MORE TIME that his account number was perfect, but creating errors is something field validation should never do.
So here's the bottom line for usability in this scenario:
Don't add "disappearing digit" validation to banking information numbers. Or any other number field that requires the user to type in a number he is not familiar with.
Alternately, highlight the box with red that has "disappearing digit" validation activated by too many digits, because if they've done it, there's a reason, and it's very likely that this exact scenario has occurred.