Placeholder Enhanced enhance the use of HTML5 placeholder attribute providing cross-browser support & styling
JavaScript HTML CSS Makefile
Latest commit a12a825 Sep 3, 2015 @dciccale Update
Failed to load latest commit information.
js include short license when minified Jul 18, 2015
LICENSE.txt update license Jun 25, 2013
package.json removed jquery plugin json in favor of npm Jul 18, 2015

Placeholder Enhanced 1.6.9

This jQuery Placeholder plugin is an enhanced polyfill for the HTML5 placeholder attribute.


  • Cross-browser & Cross-styling
  • Support for all input types, password, textarea, text, email, search, url, etc...
  • Robust: it heavely behave as the HTML5 placeholder defined in the specs
  • Normalize placeholder behaviour in modern browsers (optional). This means the placeholder will hide on input focus.
  • Fix jQuery.val() function to work as expected to set/get the value of inputs with placeholder
  • Lightweight: 970 bytes minified & gzipped

Requires jQuery 1.4.4 or higher


bower install placeholder-enhanced

or download this repo


Just include the js file after jQuery on your HTML page and the plugin will be automatically initialized

<script src="jquery.js"></script>
<script src="jquery.placeholder-enhanced.js"></script>

If you want to initialize the plugin yourself after the first auto-initialize (for example after ajax content being loaded), just call the plugin like this:

$('input[placeholder], textarea[placeholder]').placeholderEnhanced();


Initialize the plugin after loading an HTML page via AJAX, call the plugin after the content is loaded.

$(function () {
  $.get('file.html', function (html) {
      // append the html
      // find any inputs or textareas with placeholder and initialize the plugin
      .find('input[placeholder], textarea[placeholder]').placeholderEnhanced();


If you want to destroy the plugin call:

$('input[placeholder], textarea[placeholder]').placeholderEnhanced('destroy');

It will automatically clean all what the plugin first created as if it was never initialized, only for the selected elements.


Customize the style of the placeholder with CSS in a cross-browser manner:

See placeholder-enhanced.css


For a demo see demo.html online


If you want to work on the plugin there is a Makefile with two targets:

To lint with jshint

$ make lint

Minify the js file

$ make build


These are not major tasks, but nice to have:

  • Create a kimbo.js plugin version.
  • Create a plain JavaScript version?
  • Create two separate versions.
    • Version 1.x to give full cross-browser support and normalization. (current version)
    • Version 2.x only to normalize modern browsers placeholder behaviour.