Skip to main content

Quickly build a jQuery watermark plugin with HTML5 and modenizr support

In this edition of blog post, we will quickly build a jQuery watermark pluigin for input controls.  This is an adapted post from  http://uniquemethod.com/html5-placeholder-text-jquery-fallback-with-modernizr.  I have quickly refactored the code as a jQuery plugin.  The author in the above blog post has done a great job of summarizing the concept.

A watermark or placeholder text is an indicator by input controls as to what data could be enter in the field.  It's kind of a hint to user entering the data.

HTML5 has native support for watermark in the form of "placeholder" attribute.  Any text that you put in the placeholder attribute will show as watermark in modern browsers.

For browsers that doesn't yet support HTML5, jQuery comes to the rescue.  Also, we are using Modernizr for feature detection.

Modernizr is an excellent feature detection library, with which we can detect for support of modern standard by browsers.


You can see a working version here


You can use this plugin, in the following manner.

$(".placeholder").watermark();

The above jQuery code finds all elements with a class of "placeholder" and applies the watermark() function to it.

The sample input element is shown below.

 <label>Namelabel>
 <input class="placeholder" placeholder="Enter your full name." type="text" />

Do note the above input element has a class of  "placeholder" and also a placeholder attribute which is set to "Enter you full name".  This placeholder text will be shown as watermark in the input element.  Also, HTML5 browser directly understands and render this placeholder attribute appropriately.

Rather than bloating this post, I have added appropriate comment in the jsfiddle.  In case anyone needs further clarifications, please drop a comment.

Enjoy~!.

Comments

Popular posts from this blog

JavaScript Scope

In this blog post we will dig deeper into various aspects of JavaScript scope.  This is a pretty interesting topic  and also a topic which confuses many beginning JavaScript programmers. Understanding JavaScript scope helps you write bug free programs (hmm.. atleast helps your troubleshoot things easily) Scope control the visibility and lifetimes of variables and parameters.  This is important from the perspective of avoiding naming collisions and provides memory management service. Unlike other languages, JavaScript does not have block level scope.  For e.g. take for instance the following piece of c# code. public void Main () { int a = 5; if (true) { int b = 10; } // This will throw compile time error as b is not defined // and not within the scope of function Main(); Console.WriteLine(b); } If you write the same code in JavaScript, then the value of 'b' will be available outside the 'if' block. The reason for this is JavaScript does no...

Core Leadership Strengths

Here are few notes that I am putting out from my leadership training seminar. Lets have a look at the "Five Clusters of Strength". - Personal Character Character is who you are when no one is looking. This is the core strength which every leader/human should possess. This deals with the ethical standards, integrity and authenticity of the leader. - Personal Capability This trait deals with the intellectual, emotional, and skill of the individual. It includes analytical and problem-solving capabilities along with the technical competencies. Great leaders need a strong collection of these personal capabilities. - Focus on result This deals with capability to achieve results, having an impact on the organization. It also highlights the capability for getting things done. - Interpersonal/People skill This relates with character. It deals with the leaders ability to effectively communicate with the people. Its a direct expression of the character of the individ...

MCPD: Microsoft .NET Framework 2.0—Application Development Foundation[70-536]

Link to online resource which covers most of the aspect of passing this exam can be found at the following URL. http://www.publicjoe.co.uk/536/70-536.html The following points will help you remember some of the important aspect of passing the 70-536 exam.[Application Development Foundation] The StringBuilder[System.Text namespace] class is used for optimized string concatenation. For more detailed information follow the below url http://msdn2.microsoft.com/en-us/library/system.text.stringbuilder(VS.71).aspx PrincipalPermission is used to gain insight into user's credential. For more info refere the following URL. http://msdn2.microsoft.com/en-us/library/system.security.permissions.aspx The SmtpClient class should be used to send e-mail by using the Simple Mail Transfer Protocol[System.Net.Mail]. Attachment content can be a String , Stream , or file name. You can specify the content in an attachment by using any of the Attachment constructors. For more details refer the followin...