Aaron N. Tubbs bio photo

Aaron N. Tubbs

Dragon chaser.

Twitter Facebook Google+ LinkedIn Github

Here’s a clever trick that web form designers like to do because they like to use javascript, and remind me why I used to run a browser without javascript enabled. They take a form, like one asking for a phone number, and as soon as you type the three numbers in the area code input box, it tabs you to the next form field!

That’s really swell, because it saves you time, right?

No, not really. Here’s the user interface problem with this idea:

  1. Not everybody does this, and nobody does it in a consistent fashion.
  2. You have to tab all other fields that don’t have knowledge of when they’re complete, such as street names, names, towns, etc.
  3. If you hit tab after you type the right field information, you then tab past where you mean to be, forcing you to reselect the field to which you intended to tab.
  4. This one’s the killer. Because most web designers are idiots, they do idiotic things, like try to implement something themselves (they fail) or copy and paste the work of somebody smarter than them that they don’t understand (inevitably causing other problems). In this case, they put code like this into their form:

function AutoTabForward(oFromTextBox,nTriggerLen,oToTextBox) { if (oFromTextBox.value.length >= nTriggerLen) { //alert(oFromTextBox.value.length); oToTextBox.focus(); }


Anybody see the problem here? It’s not that they left some old debugging comments in for every single page load (sigh). It’s subtle. Ok, it’s not freaking subtle — it’s a clear sign of complete incompetence. Given a form field that has been filled to the requisite length, you’re going to have a hell of a time trying to maintain focus there! If you typed it wrong, you’re screwed, sorry!

At the end of the day, this is a problem of a discontinuous user interface; sometimes you tab, sometimes you don’t. Sometimes the form advances itself, sometimes you advance it. And, bugs are added as a side effect. So, to any impressionable web developers out there, please let’s get over this client-side form scripting crap. Much like the color-fading backgrounds on page load, it was a nice gimmick to amuse your friends, but it has no place in a professional system.