PageSourceSearch

https://blackwellruiz.com/wp-content/themes/mega-theme/js/placeholder.js

js blackwellruiz.com collected 2026-10-07 19:57:24 UTC 4,349 bytes, 161 lines download raw bytes

1/*********************************************
2
3	jQuery extended placeholder plugin.
4	Text, password, and textarea fields supported.
5	Version: 0.9.2
6	Author: Sergey Estrin
7	Site: http://g-rain-design.ru/en/jquery/placeholder/
8	Released under the MIT License.
9
10*********************************************/
11
12(function($) {
13
14	$.fn.placeholder_clear = function() {
15	
16		var arPlaceholders = $(this).data("placeholders");
17
18		$(this).find("input[placeholder], textarea[placeholder]").each(function(){
19		
20			var field_name = $(this).attr("name");
21
22			if(field_name in arPlaceholders)
23				if($(this).val()==arPlaceholders[field_name]) 
24					$(this).val("");
25		
26		});
27
28	};
29
30
31	$.fn.placeholder_focus = function(caption) {
32	
33		if(this.val()==caption) {
34			this.val("");
35			this.removeClass($.fn.placeholder_options.placeholded_class);
36		}
37	
38	};
39
40	$.fn.placeholder_blur = function(caption) {
41	
42		if(this.val()=="") {
43			this.val(caption);
44			this.addClass($.fn.placeholder_options.placeholded_class);
45		}
46	
47	};
48
49	$.fn.placeholder_password_focus = function(caption) {
50
51		if(!this.is(':password')) {
52	
53			if(this.val()==caption) {
54				var new_input = $('<input type="password" name="' + this.attr('name') + '" value="" />');
55				new_input.attr("placeholder",caption);
56				new_input.attr("class",this.attr("class"));
57				new_input.removeClass("pie_first-child"); // PIE compatibility
58				new_input.removeClass($.fn.placeholder_options.placeholded_class);
59				new_input.blur(function(){	new_input.placeholder_password_blur(caption); });
60				this.replaceWith(new_input);
61				new_input.focus();
62				new_input.focus();
63			}
64			
65		}
66	
67	};
68
69	$.fn.placeholder_password_blur = function(caption) {
70
71		if(this.is(':password')) {
72	
73			if(this.val()=="") {
74				var new_input = $('<input type="text" name="' + this.attr('name') + '" value="' + caption + '" />');
75				new_input.attr("placeholder",caption);
76				new_input.attr("class",this.attr("class"));
77				new_input.removeClass("pie_first-child"); // PIE compatibility
78				new_input.addClass($.fn.placeholder_options.placeholded_class);
79				new_input.focus(function(){	new_input.placeholder_password_focus(caption); });
80				this.replaceWith(new_input);
81			}
82			
83		}
84	
85	};
86
87	$.fn.placeholder = function(opts) {
88	
89		if(opts!=null) 
90			for(var index in opts) 
91				if($.fn.placeholder_options[index]!=null)
92					$.fn.placeholder_options[index]=opts[index];
93
94		var elements = this;
95
96		if($.fn.placeholder_options.container) {
97			$($.fn.placeholder_options.container_selector).each(function(){
98				var caption = $(this).find($.fn.placeholder_options.caption_selector+":first").html();
99				var input = $(this).find("input:text:first, input:password:first, textarea:first");
100				if(caption && input[0]) {
101					input.attr("placeholder",caption);
102					elements.push(input);
103				}
104			});
105		}
106	
107		elements.each(function() {
108    	
109    		var input = $(this);
110    	
111    		var caption = $.fn.placeholder_options.caption_prefix + input.attr("placeholder") + $.fn.placeholder_options.caption_postfix;
112
113    		var pform = input.parents('form:first');
114    		var pdata = pform.data("placeholders");
115    		if(!(pdata instanceof Array)) pdata = [];
116    		//pdata.push({ name: input.attr("name"), caption: caption });
117    		pdata[input.attr("name")] = caption;
118    		
119    		pform.data("placeholders",pdata);
120    		pform.unbind("submit",$.fn.placeholder_clear).bind("submit",$.fn.placeholder_clear);
121    	
122    		if(input.is(':password'))
123    		{
124
125    			input.placeholder_password_blur(caption);
126    			input.focus(function(){	input.placeholder_password_focus(caption); });
127    			input.blur(function(){ input.placeholder_password_blur(caption); });
128    			
129    		} else {
130    	
131    			input.placeholder_blur(caption);
132    			input.focus(function(){	input.placeholder_focus(caption); });
133    			input.blur(function(){ input.placeholder_blur(caption);	});
134    			
135    		}
136
137    	});
138	
139	};
140
141	// default options
142
143	$.fn.placeholder_options = {
144    	placeholded_class: "placeholded",
145    	caption_prefix: "",
146    	caption_postfix: "",
147    	container: false,
148    	container_selector: ".form-field-container",
149    	caption_selector: ".form-field-caption"
150    };
151	
152
153})(jQuery);
154
155
156$().ready(function(){
157
158	$(":input[placeholder], textarea[placeholder]").placeholder();	
159	//$(":input[placeholder], textarea[placeholder]").placeholder({container: true});
160	
161});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.