Time for some JavaScript action.
JavaScript as you know is a client-side web scripting language and is the best choice for any client-side scripting application for the web. Today we’re going to employ some basic and simple JavaScript methods to enhance a Search (Input) Box as in the image above.
You’ve probably come across this type of Search Box before. In the text box initially is written ‘Search’ or something of that sort but as soon as you click or focus on it, the field becomes empty for you to type in, again when it is left blank and focus is taken off it, field changes back to have the initial text.
I don’t actually see a big enough reason why people employ this technique but one common reason might be when there is not enough space to label the search box, this technique can use the Text Box to label itself.
OK, enough discussion, now let’s have a look at the code:
<form action="SCRIPT-NAME" method="post">
<input type="text" value="Search..." name="search"
onfocus="if (this.value == 'Search...') {this.value = '';}"
onblur="if (this.value == '') {this.value = 'Search...';}" />
</form>
Here ‘onfocus’ and ‘onblur’ are JavaScript functions. You can very well see that JavaScript code can be used anywhere directly along with HTML.
The code employs a simple logic and I think is very easy to understand, the only thing you’ve got to know is what ‘onblur’ and ‘onfocus’ mean. These are known as Event Handlers as they invoke contained code when respective events occur.
Here as we are using those functions with respect to the Text Box, therefore, obviously interaction is with the text box.
If you don’t fully understand, input box is given initial value ‘Search…’, if on focus the value is the same, it’s changed to be empty. On the other hand if it loses focus and the user has not typed anything into it, again its value is set to be ‘Search…’, the initial value. In other cases the input box behaves as normal to take user input.
Below I’ve placed a working Input Box designed as above for you to see it in action:
[Note: I've styled the Input Box to look bigger than usual..]
Previous Articles: