58 lines
2.2 KiB
JavaScript
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);
|