/* * jQuery UI Watermark @VERSION * * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * * http://docs.jquery.com/UI/Watermark * * Depends: * ui.core.js */ (function($) { $.widget("ui.watermark", { _init: function() { var o = this.options, self = this; var input = this.element; var placeholder = $.isFunction(o.placeholder) ? o.placeholder.apply(this.element[0]) : o.placeholder; this.element.wrap("").parent().addClass("ui-watermark-container ui-watermark-" + input[0].tagName.toLowerCase()); var label = (this.label = $('').insertBefore(input)); label.addClass("ui-watermark-label"); label.css({ left: parseInt(input.css("borderLeftWidth")) + parseInt(input.css("paddingLeft")), top: parseInt(input.css("borderTopWidth")) + parseInt(input.css("paddingTop")) }); if (input.val()) { label.hide(); } input.bind("focus." + this.widgetName, function() { if (!o.disabled && !this.value) o.animate ? label.fadeOut("fast") : label.hide(); }).bind("blur." + this.widgetName, function() { if (!o.disabled && !this.value) o.animate ? label.fadeIn("fast") : label.show(); }); }, destroy: function() { if (this.element.data("placeholder")) { this.element.attr("placeholder", this.element.data("placeholder")); } // TODO remove this once replaceWith handles a disconnected element (see core #3940) if (this.element.parent().parent().length) this.element.parent().replaceWith(this.element); this.label.remove(); $.widget.prototype.destroy.apply(this, arguments); } }); $.extend($.ui.watermark, { version: "@VERSION", defaults: { placeholder: function() { var result = $(this).attr("placeholder"); $(this).data("placeholder", result); $(this).removeAttr("placeholder"); return result; }, animate: true } }); })(jQuery);