Auto-Focus Form Elements with JavaScript

by Jeff Starr on Monday, December 4, 2006 6 Responses

After digging through the WordPress source code, I stumbled upon this very useful JavaScript method for auto-focusing form elements upon page load. Here is the JavaScript code (place within the document head):

<script type="text/javascript">
   function formfocus() {
      document.getElementById('element').focus();
   }
   window.onload = formfocus;
</script>

…and corresponding (X)HTML markup (abbreviated for clarity):

<form>
   <input id="element" />
   <input />
   <input />
</form>

In this example, the first form element (identified by id="element") will be automatically focused when the document loads, thus facilitating the process of entering data in the form. This technique would serve users well on login pages (wink, wink;), or anywhere forms are required on a repetitive basis.

Update: [ May 29th, 2007 ] - Here is a similar method of auto-focusing a form element with just a splash of JavaScript. Place the following code into an input element that contains a predefined field value and watch in amazement as the text string is automatically highlighted upon user focus. Here is the JavaScript snippet:

onfocus="this.select();"

..and here is a “live” example:

..and corresponding code:

<form action="http://domain.com/" method="post">
   <div>
      <input onfocus="this.select();" value="Select this input element and this text will be highlighted.." size="55" type="text">
   </div>
</form>

About the author

[ Jeff Starr ]

Jeff Starr is a web developer, graphic designer and content producer with over 10 years of experience and a passion for quality and detail. Jeff is co-author of the book Digging into WordPress and strives to help people be the best they can be on the Web. + Follow Jeff on Twitter and subscribe to Perishable Press for quality web-design content delivered fresh.


6 Responses
[ Gravatar Icon ]

GasGiant#1

Since I use a common header for a number of PHP pages, some pages have forms while others do not. To keep from throwing an error on the pages where the element does not exist, I enclosed the focus() action inside an if() statement

function formfocus() {
if(document.getElementById(’element’)) {
document.getElementById(’element’).focus();
}
}
window.onload = formfocus;

[ Gravatar Icon ]

Perishable#2

Excellent tip - Thank you for sharing!

[ Gravatar Icon ]

Mangesh#3

Hi friend,
Thank u very much for this logic and code.
I was searching for it and just found @ this place.
thank u very much.
i gonna use your code for my software.
thankz once again

MNP,
JiLMaiL.com
JiLMaiL Email Platform.

[ Gravatar Icon ]

Perishable#4

My pleasure — happy to help ;)

[ Gravatar Icon ]

Hephaistus#5

you can also always select the first element of the form:

aForm.elements[1].focus();

this way you don’t need to know the id of the first element

if you want to get the form and you just have one form:

var aForm = document.forms[1];

[ Gravatar Icon ]

Perishable#6

Sweet tip, Hephaistus — thanks!

Comments are closed for this post

If you have or need further information, contact me.



Next post: Feed Tester

Attention: Do NOT follow this link!