Skip to content

Instantly share code, notes, and snippets.

@ktmud
Created July 31, 2012 08:46
Show Gist options
  • Save ktmud/3215109 to your computer and use it in GitHub Desktop.
Save ktmud/3215109 to your computer and use it in GitHub Desktop.
input placeholder using elem.value
(function() {
var canNative = (function() {
var elem = document.createElement('input');
return 'placeholder' in elem;
})();
$.fn.placeholder = function(text, cls, noNative) {
var self = this;
text = text || '';
cls = cls || 'blur';
if (!noNative && canNative) {
if (text) self.attr('placeholder', text);
self.removeClass(cls);
return self;
}
self.filter(function(i) {
var elem = this;
var t = text || elem._placeholder || elem.placeholder || '';
if (!t) return false;
elem._placeholder = t;
elem.placeholder = '';
if (!elem.value) {
elem.value = t;
elem.className += ' ' + cls;
}
return true;
}).focus(function(e) {
var elem = this;
var node = $(elem);
var t = text || elem._placeholder;
if (node.val() == t) {
node.val('');
}
if (cls) node.removeClass(cls);
}).blur(function(e) {
var elem = this;
var node = $(elem);
var t = text || elem._placeholder;
if (!node.val()) {
node.val(t);
if (cls) node.addClass(cls);
}
}).parents('form').submit(function(e) {
self.each(function(i, elem) {
if (elem.value == elem._placeholder) {
elem.value = '';
}
});
});
return self;
};
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment