PageSourceSearch

https://www.jeca.or.jp/js/forms/validator.js?1505461761

js jeca.or.jp collected 2026-10-02 18:47:29 UTC 5,167 bytes, 199 lines download raw bytes

1(function($){
2	//#3260 matuuchi
3	var device = $("#params").data("device");
4
5	//#3093 matuuchi Webアクセシビティ対応
6	var webac_flg = ($("#params").data("webac") !== "undefined") ? parseInt($("#params").data("webac"),10) : false;
7
8
9	$.fn.dsFormValidator = function(config){
10
11		var defaults = {
12
13			text_rules     : {},
14			datetime_rules : {},
15			closest_class  : ""
16		}
17
18		var options = $.extend(defaults, config);
19
20		var DDTVClass = new DsDateTimeValidator(options);
21
22		return this.each(function(i){
23
24			var $form = $(this);
25
26			if(typeof $.validator.defaults.ds_text_rules === "undefined") {
27
28				$.validator.setDefaults({
29
30					ds_text_rules     : options.text_rules,
31					ds_datetime_rules : options.datetime_rules,
32					ds_closest_class  : options.closest_class,
33					errorClass        : "a-valid-msg",
34					errorElement      : "span",
35					ignore            : ".ignore",
36					highlight         : function(element, errorClass, validClass) {
37						$(element).closest("." + $.validator.defaults.ds_closest_class).addClass("valid-error");
38						
39						//#3260 matuuchi
40						setTimeout(function(){
41							$(element).filter("[data-rule-dstext='email2']").closest(".form-item").addClass("valid-error");
42						}, 100);
43					},
44					unhighlight: function(element, errorClass, validClass) {
45
46						$(element).closest("." + $.validator.defaults.ds_closest_class).removeClass("valid-error");
47					},
48					/* #2773 matuuchi */
49					showErrors : function(element, errorClass, validClass) {
50
51						this.defaultShowErrors();
52
53						$(this.toShow).each(function(){
54							$_this = $(this);
55							var top = $_this.position().top - 7;
56							$_this.css("top",top + "px");
57						});
58						
59						//#3093 matuuchi WEBAC
60						if($form.hasClass("form-submit")){
61							$form.find(".valid-item-msg").remove();
62						}
63
64						//#3260 matuuchi
65						for ( i = 0; errorClass[i]; i++ ) {
66							var error = this.errorList[i];
67							
68							if($("span.a-valid-msg[for='"+error.element.id+"']").length || $("span.a-valid-msg[for='"+error.element.name+"']").length){
69								var $tip = ($("span.a-valid-msg[for='"+error.element.id+"']").length) ? $("span.a-valid-msg[for='"+error.element.id+"']") : $("span.a-valid-msg[for='"+error.element.name+"']");
70								if(error.method == "required" || error.method == "dsdatetime"){
71									$tip.hide();
72								}else{
73									$tip.show();
74								}
75							}
76
77							//#3093 matuuchi WEBAC
78							if($form.hasClass("form-submit")){
79
80								var $itemTip = $("<div class='valid-item-msg "+ error.method +"'></div>");
81								//var $itemTip = $("<div class='valid-item-msg'>"+error.message+"</div>");
82
83								//var msg = "";
84								if((error.method == "required" || error.method == "dsdatetime") && $("#bg").hasClass("lang-ja")){
85									$itemTip.append(error.message + "項目が入力されていません");
86									
87								}else{
88									if(error.method == "equalTo" && $(error.element).closest(".cell2").find(".valid-item-msg.dstext").length){
89										continue;
90									}
91									$itemTip.append(error.message);
92								}
93								
94								if($(error.element).length){
95									//$itemTip.
96									$(error.element).before($itemTip);
97								}
98							}
99						}
100					}
101
102				});
103
104				$.validator.addMethod("dstext", function(value, element, param) {
105
106					var ds_text_rules = $.validator.defaults.ds_text_rules;
107					var rule          = ds_text_rules[param];
108
109					var regex_flg =value.match(rule["regex"]);
110
111					if(!regex_flg) {
112
113						$.validator.messages["dstext"] = rule["msg"];
114
115					}
116
117					return this.optional(element) || regex_flg;
118
119				}, "error...");
120
121				DDTVClass.validatorAddMethod();
122
123			}
124
125			$form.find("." + $.validator.defaults.ds_closest_class).each(function () {
126
127				var $closest = $(this);
128
129				var $checkboxs = $closest.find("input[type='checkbox']");
130
131				if($checkboxs.length) {
132
133					var class_ary = $checkboxs.eq(0).attr("class").split(" ");
134
135					for(var i=0, max = class_ary.length; i < max; i++) {
136
137						if(class_ary[i].match(/^ds-check-required[0-9]+$/) !== null) {
138
139							$.validator.addClassRules(class_ary[i], {
140
141								required : true
142
143							});
144
145						}
146
147					}
148
149				}
150
151				var $datetimes = $closest.find("select.ds-datetime");
152
153				if($datetimes.length) {
154
155					var $dt_valid  = $closest.find(".ds-datetime-valid").eq(0);
156
157					$datetimes.on("change", function () {
158
159						var dval = DDTVClass.htmlToString($(this));
160
161						$dt_valid.val(dval).trigger("focusout");
162
163					}).eq(0).trigger("change");
164
165				}
166
167			});
168			
169			//submit・ス・ス・ス・ス・スノゑソス・ス・スネゑソス
170			$form.valid();
171			//$form.validate();
172
173
174			//#3093 matuuchi WEBアクセシビティ対応
175			if(webac_flg){
176				$form.submit(function(){
177
178					$form.addClass("form-submit");
179					//$form.find(".valid-item-msg").remove();
180					
181					if($form.find(".valid-error").length){
182
183						//エラー表示
184						var $formErrMsg = $form.find(".form-err-msg.webac-msg").eq(0);
185						if($formErrMsg.length){
186							$formErrMsg.show().focus();
187						}
188						$form.valid();
189					}
190
191					setTimeout(function(){
192						$form.removeClass("form-submit");
193					},500);
194				});
195			}
196		});
197	};
198
199})(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.