-
Notifications
You must be signed in to change notification settings - Fork 20
/
jquery.placeholder-1.0.1.js
executable file
·58 lines (56 loc) · 2.26 KB
/
jquery.placeholder-1.0.1.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/**
* 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);