Bones/js/forms.jquery.js
2011-05-01 08:43:13 -07:00

58 lines
2.2 KiB
JavaScript

/**
* jQuery.placeholder - Placeholder plugin for input fields
* Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
* Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
* Date: 2008/10/14
*
* @author Blair Mitchelmore
* @version 1.0.1
*
**/
new function($) {
$.fn.placeholder = function(settings) {
settings = settings || {};
var key = settings.dataKey || "placeholderValue";
var attr = settings.attr || "placeholder";
var className = settings.className || "placeholder";
var values = settings.values || [];
var block = settings.blockSubmit || false;
var blank = settings.blankSubmit || false;
var submit = settings.onSubmit || false;
var value = settings.value || "";
var position = settings.cursor_position || 0;
return this.filter(":input").each(function(index) {
$.data(this, key, values[index] || $(this).attr(attr));
}).each(function() {
if ($.trim($(this).val()) === "")
$(this).addClass(className).val($.data(this, key));
}).focus(function() {
if ($.trim($(this).val()) === $.data(this, key))
$(this).removeClass(className).val(value)
if ($.fn.setCursorPosition) {
$(this).setCursorPosition(position);
}
}).blur(function() {
if ($.trim($(this).val()) === value)
$(this).addClass(className).val($.data(this, key));
}).each(function(index, elem) {
if (block)
new function(e) {
$(e.form).submit(function() {
return $.trim($(e).val()) != $.data(e, key)
});
}(elem);
else if (blank)
new function(e) {
$(e.form).submit(function() {
if ($.trim($(e).val()) == $.data(e, key))
$(e).removeClass(className).val("");
return true;
});
}(elem);
else if (submit)
new function(e) { $(e.form).submit(submit); }(elem);
});
};
}(jQuery);