PageSourceSearch

https://ns-sw.co.jp/js/forms/validator-datetime.js?1455612860

js ns-sw.co.jp collected 2026-10-06 07:41:54 UTC 4,845 bytes, 262 lines download raw bytes

1function DsDateTimeValidator(options) {
2
3	this.options   = options;
4	this.DateClass = new Date();
5
6};
7
8DsDateTimeValidator.prototype = {
9
10	validatorAddMethod : function () {
11
12		var DDTVClass = this;
13
14		$.validator.addMethod("dsdatetime", function(value, element, param) {
15
16			var ok_flg = true;
17
18			var ds_datetime_rules = $.validator.defaults.ds_datetime_rules;
19			var rule              = ds_datetime_rules[param];
20
21			var $dt_valid = $(element);
22
23			var value = $dt_valid.val();
24
25			var dary = DDTVClass.stringToArray(value);
26
27			switch(param) {
28
29				case "Y-m-d H:i" :
30
31					// 必須
32					if($dt_valid.hasClass("required")) {
33
34						if((dary.Y.length < 1) || (dary.m.length < 1) || (dary.d.length < 1) || (dary.H.length < 1) || (dary.i.length < 1)) {
35
36							ok_flg = false;
37
38							$.validator.messages["dsdatetime"] = rule["msg"];
39
40						}
41
42					}
43
44					if(((dary.Y.length > 0) || (dary.m.length > 0) || (dary.d.length > 0)) && ok_flg) {
45
46						if(DDTVClass.checkDate(dary.Y, dary.m, dary.d) !== true) {
47
48							ok_flg = false;
49
50							$.validator.messages["dsdatetime"] = rule["msg2"];
51
52						}
53
54					}
55
56					break;
57
58				case "Y-m-d" :
59
60					// 必須
61					if($dt_valid.hasClass("required")) {
62
63						if((dary.Y.length < 1) || (dary.m.length < 1) || (dary.d.length < 1)) {
64
65							ok_flg = false;
66
67							$.validator.messages["dsdatetime"] = rule["msg"];
68
69						}
70
71					}
72
73					if(((dary.Y.length > 0) || (dary.m.length > 0) || (dary.d.length > 0)) && ok_flg) {
74
75						if(DDTVClass.checkDate(dary.Y, dary.m, dary.d) !== true) {
76
77							ok_flg = false;
78
79							$.validator.messages["dsdatetime"] = rule["msg2"];
80
81						}
82
83					}
84
85					break;
86
87				case "Y-m" :
88
89					// 必須
90					if($dt_valid.hasClass("required")) {
91
92						if((dary.Y.length < 1) || (dary.m.length < 1)) {
93
94							ok_flg = false;
95
96							$.validator.messages["dsdatetime"] = rule["msg"];
97
98						}
99
100					}
101
102					if(((dary.Y.length > 0) || (dary.m.length > 0)) && ok_flg) {
103
104						if(DDTVClass.checkDate(dary.Y, dary.m, "1") !== true) {
105
106							ok_flg = false;
107
108							$.validator.messages["dsdatetime"] = rule["msg2"];
109
110						}
111
112					}
113
114					break;
115
116				case "m-d" :
117
118					// 必須
119					if($dt_valid.hasClass("required")) {
120
121						if((dary.m.length < 1) || (dary.d.length < 1)) {
122
123							ok_flg = false;
124
125							$.validator.messages["dsdatetime"] = rule["msg"];
126
127						}
128
129					}
130
131					if(((dary.m.length > 0) || (dary.d.length > 0)) && ok_flg) {
132
133						if(DDTVClass.checkDate("1970", dary.m, dary.d) !== true) {
134
135							ok_flg = false;
136
137							$.validator.messages["dsdatetime"] = rule["msg2"];
138
139						}
140
141					}
142
143					break;
144
145				case "H:i" :
146
147					// 必須
148					if($dt_valid.hasClass("required")) {
149
150						if((dary.H.length < 1) || (dary.i.length < 1)) {
151
152							ok_flg = false;
153
154							$.validator.messages["dsdatetime"] = rule["msg"];
155
156						}
157
158					}
159
160					if(((dary.H.length > 0) || (dary.i.length > 0)) && ok_flg) {
161
162						if(((dary.H.length > 0) && (dary.i.length > 0)) === false) {
163
164							ok_flg = false;
165
166							$.validator.messages["dsdatetime"] = rule["msg2"];
167
168						}
169
170					}
171
172					break;
173
174			}
175
176			return this.optional(element) || ok_flg;
177
178		}, "error...");
179
180	},
181
182	htmlToString : function ($select) {
183
184		var $closest   = $select.closest("." + $.validator.defaults.ds_closest_class);
185		var $dt_valid  = $closest.find(".ds-datetime-valid").eq(0);
186
187		var ret = "";
188
189		var $Y = $closest.find(".Y").eq(0);
190		var $m = $closest.find(".m").eq(0);
191		var $d = $closest.find(".d").eq(0);
192		var $H = $closest.find(".H").eq(0);
193		var $i = $closest.find(".i").eq(0);
194
195		var Y = ($Y.length > 0) ? $Y.val() : "";
196		var m = ($m.length > 0) ? $m.val() : "";
197		var d = ($d.length > 0) ? $d.val() : "";
198		var H = ($H.length > 0) ? $H.val() : "";
199		var i = ($i.length > 0) ? $i.val() : "";
200
201		ret = Y + "-" + m + "-" + d + " " + H + ":" + i;
202
203		return ret;
204
205	},
206
207	stringToArray : function (string) {
208
209		var ret = {
210
211			Y : "",
212			m : "",
213			d : "",
214			H : "",
215			i : ""
216
217		};
218
219		var ary = string.split(" ");
220
221		var date = (typeof ary[0] !== "undefined") ? ary[0] : "";
222		var time = (typeof ary[1] !== "undefined") ? ary[1] : "";
223
224		var tmp = date.split("-");
225
226		ret["Y"] = (typeof tmp[0] !== "undefined") ? tmp[0] : "";
227		ret["m"] = (typeof tmp[1] !== "undefined") ? tmp[1] : "";
228		ret["d"] = (typeof tmp[2] !== "undefined") ? tmp[2] : "";
229
230		var tmp = time.split(":");
231
232		ret["H"] = (typeof tmp[0] !== "undefined") ? tmp[0] : "";
233		ret["i"] = (typeof tmp[1] !== "undefined") ? tmp[1] : "";
234
235		return ret;
236
237	},
238
239	checkDate : function (y, m, d) {
240
241		if((y.length > 0) && (m.length > 0) && (d.length > 0)) {
242
243			y = parseInt(y, 10);
244			m = parseInt(m, 10);
245			d = parseInt(d, 10);
246
247			var dt = this.DateClass;
248
249			dt.setFullYear(y, (m - 1), d);
250
251			return ((dt.getFullYear() == y) && (dt.getMonth() == (m-1)) && (dt.getDate() == d));
252
253		} else {
254
255			return false;
256
257		}
258
259
260	}
261
262};

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.