Somewhere, in one of the Usability books I read ( probably Donald Norman ), there was a suggestion that the normal format for entering credit cards was wrong. The usual format is 16 characters in a long string. However, the way that we read then and they are printed on the card is 4 groups of 4. The argument is - and I completely agree with it - that entering the card in 4 lots of 4 would be much easier, both to enter and to verify for the user.
This only needs a little bit of coding to include the dashes in the entered data, and ignore them in the validation. Or to have 4 boxes with focus going to the next one. It is not a complex coding issue. So why does no-one seem to do it? Why is the standard box format so prevelant still?
This comes out of having just tried to use my credit card, and make a mistake, and then had to search through the whole lot to identify the mistakes - tedious, and something that would be much easier if it was properly divided.
Edit: To add some points from comments. I think the proper implementation would need to be worked out - 4 boxes of autoinserted dashes may not work, or may need to be tweaked. So it is not saying xxx is the right approach, but that the current approach does have its own set of problems.
Answer
Accept any and all formats typed into one box.
As stated by Don Norman:
"Compliance: How Microsoft Outlook Does Things Properly
Microsoft Office Outlook has done a brilliant job of handling telephone numbers, dates, times, and addresses. Surprise: this is a product that people usually target with complaints, but I intend to heap praise upon them. When Outlook's address book or contact forms ask for a telephone number, it accepts any format the person wishes to use, figures out what country it belongs to, and reformats it into a standard form. Start a phone number with +358 and it knows that you are typing a Finnish number, so it doesn't try to format it the same way it does for US numbers. If it is an American number, you can use almost any spacing character you wish, as long as the number has the usual 7, 10, or 11 digits. As a result, you can type in any of these American phone numbers:
5551212
555.1212
847 555-1212
(847) 555-1212
847.555.1212
8475551212
+18475551212
And they all get transformed into either 555-1212, (847) 555-1212, or in the last case, +1 (847) 555-1212.
Most systems are just as bad with dates as they are with phone numbers. We say dates in all sorts of ways: most systems scold us if we don't do it just the way they like, again, often not even telling us what they like.
Here are some of the ways people write the date January 20, 2009:
1/20/09
1/20/2009
20/1/2009
20 Jan 09
2009.01.20
20th January 09
Hurrah for Outlook! It shows huge compliance, huge tolerance for our variability. It takes all of these formats and transforms them into the target specification it prefers: Tue 1/20/2009. But even better, the target specification is set by the person using the computer and is stored within the Operating System, so all programs can use the same formats. "