/* * clearingInput: a jQuery plugin * * clearingInput is a simple jQuery plugin that provides example/label text * inside text inputs that automatically clears when the input is focused. * Common uses are for a hint/example, or as a label when space is limited. * * For usage and examples, visit: * http://github.com/alexrabarts/jquery-clearinginput * * Licensed under the MIT: * http://www.opensource.org/licenses/mit-license.php * * Copyright (c) 2008 Stateless Systems (http://statelesssystems.com) * * @author Alex Rabarts (alexrabarts -at- gmail -dawt- com) * @requires jQuery v1.2 or later * @version 0.1.1 */ (function ($) { $.extend($.fn, { clearingInput: function (options) { var defaults = {blurClass: 'blur'}; options = $.extend(defaults, options); return this.each(function () { var input = $(this).addClass(options.blurClass); var form = input.parents('form:first'); var label, text; text = options.text || textFromLabel() || input.val(); if (text) { input.val(text); input.blur(function () { if (input.val() === '') { input.val(text).addClass(options.blurClass); } }).focus(function () { if (input.val() === text) { input.val(''); } input.removeClass(options.blurClass); }); form.submit(function() { if (input.hasClass(options.blurClass)) { input.val(''); } }); input.blur(); } function textFromLabel() { label = form.find('label[for=' + input.attr('id') + ']'); // Position label off screen and use it for the input text return label ? label.css({position: 'absolute', left: '-9999px'}).text() : ''; } }); } }); })(jQuery);