PageSourceSearch

https://discount-tools.ru/local/templates/elektro_flat/js/custom-forms/jquery.custom-forms.js

js discount-tools.ru collected 2026-10-08 06:36:04 UTC 3,042 bytes, 105 lines download raw bytes

1(function($) {
2	var methods;
3	var customClass = 'custom-forms-wrapper';
4	var customSelector = '.' + customClass;
5	methods = {
6		init: function (options) {
7			return this.each(function () {
8				var self = $(this);
9				var inputs = self.children('input');
10				self.addClass(customClass);
11				//Êëàññû äëÿ îáåðòîê
12				inputs.each(function () {
13					var self = $(this);
14					var parent = self.parent(customSelector);
15					switch( $(this).attr('type') ) {
16						case 'checkbox':
17							parent.addClass('checkbox');
18							self.addClass('master');
19							break;
20						case 'radio':
21							parent.addClass('radio');
22							self.addClass('master');
23							break;
24						case 'text':
25							parent.addClass('text');
26							self.addClass('master');
27							break;
28						case 'file':
29							parent.addClass('file');
30							self.addClass('invisible');
31							parent.append('<div class="master">Âûáåðèòå ôàéë</div>');
32							parent.append('<div class="slave file"></div>');
33							parent.append('<div class="slave file-blocker"></div>');
34							break;
35
36					}
37				});
38				//Ñèíõðîíèçèðóåì êëàññû îáåðòîê ñ ñîñòîÿíèåì ïî óìîë÷àíèþ ó èíïóòîâ
39				inputs.each(function(){
40					var parent = $(this).parent(customSelector);
41					if ($(this).is(':checked'))
42						parent.addClass('active');
43					else
44						parent.removeClass('active');
45
46					if ($(this).is(':disabled'))
47						parent.addClass('disable');
48					else
49						parent.removeClass('disable');
50				});
51				//Îáíîâëÿåì ñîñòîÿíèå
52				inputs.change(function(){
53					$(this).customForms('refresh');
54				});
55				//Íàâèãàöèÿ
56				inputs.focus(function(){
57					var parent = $(this).parent(customSelector);
58					parent.addClass('focus');
59				});
60				inputs.blur(function(){
61					var parent = $(this).parent(customSelector);
62					parent.removeClass('focus');
63				});
64			});
65		},
66		refresh: function() {
67			var parent = $(this).parent(customSelector);
68			//Óáèðàåì âûäåëåíèå ñ ãðóïïû ðàäèî
69			if( $(this).is('[type=radio]') )
70				$(customSelector + '.radio input[name="'+ $(this).attr('name') +'"]').each(function () {
71					var parent = $(this).parent(customSelector);
72					parent.removeClass('active');
73				});
74			//Ìåíÿåì èìÿ â ôàéë-ôåéêå
75			if( $(this).is('[type=file]') ) {
76				var file = $(this).val();
77				file = file.replace("C:\\fakepath\\","");
78				if (file) {
79					parent.find('.master').text(file);
80				} else {
81					parent.find('.master').text('Âûáåðèòå ôàéë');
82				}
83			}
84			//Ïðîñòàâëÿåì êëàññû îáíîâëÿåìîìó ýëåìåíòó
85			if ($(this).is(':checked'))
86				parent.addClass('active');
87			else
88				parent.removeClass('active');
89
90			if ($(this).is(':disabled'))
91				parent.addClass('disable');
92			else
93				parent.removeClass('disable');
94		}
95	};
96	$.fn.customForms = function ( method ) {
97		if ( methods[method] ) {
98			return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
99		} else if ( typeof method === 'object' || ! method ) {
100			return methods.init.apply( this, arguments );
101		} else {
102			$.error( 'Ìåòîä ' +  method + ' â jQuery.customForms íå ñóùåñòâóåò' );
103		}
104	};
105})(jQuery);

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.