Created
February 22, 2010 19:21
-
-
Save westonruter/311373 to your computer and use it in GitHub Desktop.
jQuery fallback implementation of HTML5 placeholder attribute
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if(!jQuery('<input PLACEHOLDER="1" />')[0].placeholder){ //Uppercase attr for IE | |
jQuery(':input[placeholder]').each(function(){ | |
var $this = $(this); | |
if(!$this.val()){ | |
$this.val($this.attr('placeholder')); | |
$this.addClass('input-placeholder'); | |
} | |
}).live('focus', function(e){ | |
var $this = $(this); | |
if($this.hasClass('input-placeholder')){ | |
$this.val(''); | |
$this.removeClass('input-placeholder') | |
} | |
}).live('blur', function(e){ | |
var $this = $(this); | |
if(!$this.val()){ | |
$this.addClass('input-placeholder'); | |
$this.val($this.attr('placeholder')); | |
} | |
}); | |
} |
This doesn't work if you submit the form with no entered values. Should reset when submitting form.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for the great script!
One issue I found was with FireFox is that it retains the placeholder text after a page refresh, as if it were something the user entered. Adding this line after var$this = $ (this) should fix it:
if( $this.val() == $this.attr('placeholder') ) {$this.val('');}