PageSourceSearch

https://gwgenius.com/wp-content/plugins/conditional-logic-for-elem…/libs/conditional_logic.js?ver=1790856002

js gwgenius.com collected 2026-10-02 01:31:58 UTC 16,944 bytes, 482 lines download raw bytes

1(function ($) {
2	"use strict";
3	$(document).ready(function () {
4		jQuery(document).on('elementor/popup/show', () => {
5			$(".elementor-form").each(function (index) {
6				var form = $(this).closest(".elementor-element");
7				elementor_conditional_logic_load(form);
8			});
9		});
10		$(document).on('submit_success', function (event, response) {
11			//Add your code or actions here.
12			if (response.data && response.data.redirect_url_new_tab) {
13				window.open(response.data.redirect_url_new_tab, '_blank');
14			}
15			//The response will hold the display message from the Form widget.
16		});
17		window.addEventListener('elementor/frontend/init', () => {
18			$(".elementor-form").each(function (index) {
19				var form = $(this).closest(".elementor-element");
20				elementor_conditional_logic_load(form);
21			});
22		});
23		$("body").on("change", ".elementor-form input,.elementor-form select,.elementor-form textarea", function (e) {
24			var form = $(this).closest(".elementor-element");
25			elementor_conditional_logic_load(form, event);
26		})
27		$("input").on("done_load_repeater", function (e, item) {
28			$(".elementor-form").each(function (index) {
29				var form = $(this).closest(".elementor-element");
30				elementor_conditional_logic_load(form);
31			});
32		})
33		function elementor_conditional_logic_check_single(value_id, operator, value) {
34			var rs = false;
35			switch (operator) {
36				case "==":
37					if (value_id == value) {
38						rs = true;
39					}
40					break;
41				case "!=":
42					if (value_id != value) {
43						rs = true;
44					}
45					break;
46				case "e":
47					if (value_id == "") {
48						rs = true;
49					}
50					break;
51				case "!e":
52					if (value_id != "") {
53						rs = true;
54					}
55					break;
56				case "c":
57					if (value_id.includes(value)) {
58						rs = true;
59					}
60					break;
61				case "!c":
62					if (!value_id.includes(value)) {
63						rs = true;
64					}
65					break;
66				case "^":
67					if (value_id.startsWith(value)) {
68						rs = true;
69					}
70					break;
71				case "~":
72					if (value_id.endsWith(value)) {
73						rs = true;
74					}
75					break;
76				case ">":
77					value_id = parseFloat(value_id);
78					value = parseFloat(value);
79					if (value_id > value) {
80						rs = true;
81					}
82					break;
83				case "<":
84					value_id = parseFloat(value_id);
85					value = parseFloat(value);
86					if (value_id < value) {
87						rs = true;
88					}
89					break;
90				case "array":
91					if (value !== undefined && value !== null) {
92						var values = value.split(',').map(function (v) { return v.trim(); });
93						if (values.indexOf(String(value_id).trim()) !== -1) {
94							rs = true;
95						}
96					}
97					break;
98				case "!array":
99					if (value !== undefined && value !== null) {
100						var values = value.split(',').map(function (v) { return v.trim(); });
101						if (values.indexOf(String(value_id).trim()) === -1) {
102							rs = true;
103						}
104					}
105					break;
106				case "array_contain":
107					if (value !== undefined && value !== null) {
108						var values = value.split(',').map(function (v) { return v.trim(); });
109						var value_id_str = String(value_id);
110						$.each(values, function (idx, vl) {
111							if (vl !== "" && value_id_str.includes(vl)) {
112								rs = true;
113								return false;
114							}
115						});
116					}
117					break;
118				case "!array_contain":
119					if (value !== undefined && value !== null) {
120						var values = value.split(',').map(function (v) { return v.trim(); });
121						var value_id_str = String(value_id);
122						rs = true;
123						$.each(values, function (idx, vl) {
124							if (vl !== "" && value_id_str.includes(vl)) {
125								rs = false;
126								return false;
127							}
128						});
129					}
130					break;
131			}
132			return rs;
133		}
134		function elementor_conditional_logic_load(form, event = "") {
135			var datas = $(".conditional_logic_data_js", form).val();
136			if (datas === undefined || datas == "" || datas == "[]") {
137				return;
138			}
139			datas = jQuery.parseJSON(datas);
140			$.each(datas, function (field_key, field_value) {
141				if (field_key == "elementor-field-type-submit") {
142					var field = $(".elementor-field-type-submit", form);
143				} else {
144					var field = elementor_conditional_logic_get_element_by_id(field_key, form);
145				}
146
147				var display = field_value.display;
148				var trigger = field_value.trigger;
149				var rs = [];
150				$.each(field_value.datas, function (conditional_logic_key, conditional_logic_values) {
151					var value_id = elementor_conditional_logic_get_value_by_id(conditional_logic_values.conditional_logic_id, form);
152					rs.push(elementor_conditional_logic_check_single(value_id, conditional_logic_values.conditional_logic_operator, conditional_logic_values.conditional_logic_value));
153				})
154				if (trigger == "ALL") {
155					var check_rs = true;
156					$.each(rs, function (fkey, fvalue) {
157						if (fvalue == false) {
158							check_rs = false;
159							return false;
160						}
161					})
162					if (display == "show") {
163						if (check_rs == true) {
164							field.removeClass("hidden");
165							elementor_conditional_logic_fixed_required_show(field, event);
166						} else {
167							field.addClass("hidden");
168							field.find('input').removeAttr('required');
169							elementor_conditional_logic_fixed_required_hidden(field);
170						}
171					} else {
172						if (check_rs == true) {
173							field.addClass("hidden");
174							field.find('input').removeAttr('required');
175							elementor_conditional_logic_fixed_required_hidden(field);
176						} else {
177							field.removeClass("hidden");
178							elementor_conditional_logic_fixed_required_show(field, event);
179						}
180					}
181				} else {
182					var check_rs = false;
183					$.each(rs, function (fkey, fvalue) {
184						if (fvalue == true) {
185							check_rs = true;
186							return false;
187						}
188					})
189					if (display == "show") {
190						if (check_rs == true) {
191							field.removeClass("hidden");
192							elementor_conditional_logic_fixed_required_show(field, event);
193						} else {
194							field.addClass("hidden");
195							field.find('input').removeAttr('required');
196							elementor_conditional_logic_fixed_required_hidden(field);
197						}
198					} else {
199						if (check_rs == true) {
200							field.addClass("hidden");
201							elementor_conditional_logic_fixed_required_hidden(field);
202						} else {
203							field.removeClass("hidden");
204							elementor_conditional_logic_fixed_required_show(field, event);
205						}
206					}
207				}
208			});
209		}
210		function elementor_conditional_logic_fixed_required_show(field, event) {
211			if (field.find(".elementor-field-repeater-data").length > 0) {
212				var fields_repeater = field.find(".elementor-field-required");
213				fields_repeater.each(function (index) {
214					elementor_conditional_logic_fixed_required_show_repeater($(this), event)
215				});
216				return;
217			} else {
218				elementor_conditional_logic_fixed_required_show_repeater(field, event)
219			}
220		}
221		function elementor_conditional_logic_fixed_required_show_repeater(field, event) {
222			if (field.hasClass("elementor-field-type-radio")) {
223				var value = field.data("check_required");
224				if (value == "yes") {
225					field.data("check_required", "no");
226					field.removeAttr("data-check_required");
227					field.find("input").last().prop("checked", false);
228				}
229			}
230			else if (field.hasClass("elementor-field-type-date")) {
231				var value = field.find("input").val();
232				if (value == "1023-01-01") {
233					field.find("input").val("");
234				}
235			}
236			else if (field.hasClass("elementor-field-type-time")) {
237				var value = field.find("input").val();
238				if (value == "11:47") {
239					field.find("input").val("");
240				}
241			}
242			else if (field.hasClass("elementor-field-type-tel")) {
243				var value = field.find("input").val();
244				if (value == "1234567892") {
245					field.find("input").val("");
246				}
247			}
248			else if (field.hasClass("elementor-field-type-telephone")) {
249				var value = field.find("input").val();
250				if (value == "+84372344123") {
251					field.find("input").val("");
252				}
253			}
254			else if (field.hasClass("elementor-field-type-url")) {
255				var value = field.find("input").val();
256				if (value == "https://rednumber_dev_check.com") {
257					field.find("input").val("");
258				}
259			}
260			else if (field.hasClass("elementor-field-type-email")) {
261				var value = field.find("input").val();
262				if (value == "[email protected]") {
263					field.find("input").val("");
264				}
265			}
266			else if (field.hasClass("elementor-field-type-number")) {
267				var value = field.find("input").val();
268				if (value == "29081990") {
269					field.find("input").val("");
270				}
271			} else if (field.hasClass("elementor-field-type-select")) {
272				var value = field.find("select").data("check_required");
273				if (value == "yes") {
274					field.find("select").data("check_required", "no");
275					field.find("select").removeAttr("data-check_required");
276					field.find("select option:last").removeAttr("selected");
277				}
278			}
279			else if (field.hasClass("elementor-field-type-textarea")) {
280				var value = field.find(".elementor-field").val();
281				if (value == "rednumber_dev_check") {
282					field.find(".elementor-field").val("");
283				}
284			} else if (field.hasClass("elementor-field-type-yee_input_masks")) {
285				var value = field.find(".elementor-field").val();
286				if (value == "rednumber_dev_check") {
287					field.find(".elementor-field").val("");
288					field.find(".elementor-field").inputmask();
289				}
290			}
291			else if (field.hasClass("elementor-field-type-acceptance")) {
292				var last = field.find("input").data("logic-last");
293				if (!$(event.target).hasClass("elementor-acceptance-field")) {
294					field.find("input").prop("checked", last);
295				} else {
296					if (field.find("input").is(':checked')) {
297						field.find("input").data("logic-last", true);
298					} else {
299						field.find("input").data("logic-last", false);
300					}
301				}
302			}
303			else {
304				var value = field.find("input").val();
305				if (value == "rednumber_dev_check") {
306					field.find("input").val("");
307				}
308			}
309		}
310		function elementor_conditional_logic_fixed_required_hidden(field) {
311			if (field.find(".elementor-field-repeater-data").length > 0) {
312				var fields_repeater = field.find(".elementor-field-required");
313				fields_repeater.each(function (index) {
314					elementor_conditional_logic_fixed_required_hidden_repeater($(this))
315				});
316				return;
317			} else {
318				elementor_conditional_logic_fixed_required_hidden_repeater(field)
319			}
320		}
321		function elementor_conditional_logic_fixed_required_hidden_repeater(field) {
322			field.find("input").attr("aria-required");
323			field.find("input").removeAttr("required");
324			field.find("select").removeAttr("required");
325			field.find("textarea").removeAttr("required");
326			if (field.hasClass("elementor-field-type-radio")) {
327				var value = field.find("input:checked").val();
328				if (value === undefined) {
329					field.attr("data-check_required", "yes");
330					field.find("input").last().prop("checked", true);
331					field.find("input").last().attr("data-logic-last", true);
332				}
333			}
334			else if (field.hasClass("elementor-field-type-upload")) {
335				if (field.hasClass("elementor-field-required")) {
336					alert("Conditional logic: Please do not use required in the upload field");
337				}
338				field.find("input").removeAttr("aria-required");
339			}
340			else if (field.hasClass("elementor-field-type-html1")) {
341			}
342			else if (field.hasClass("elementor-field-type-date")) {
343				var value = field.find("input").val();
344				field.find("input").removeAttr("aria-required");
345				if (value == "") {
346					field.find("input").val("1023-01-01");
347				}
348			}
349			else if (field.hasClass("elementor-field-type-time")) {
350				var value = field.find("input").val();
351				field.find("input").removeAttr("aria-required");
352				if (value == "") {
353					field.find("input").val("11:47");
354				}
355			}
356			else if (field.hasClass("elementor-field-type-tel")) {
357				var value = field.find("input").val();
358				field.find("input").removeAttr("aria-required");
359				if (value == "") {
360					field.find("input").val("1234567892");
361				}
362			}
363			else if (field.hasClass("elementor-field-type-telephone")) {
364				var value = field.find("input").val();
365				field.find("input").removeAttr("aria-required");
366				if (value == "") {
367					field.find("input").val("+84372344123");
368				}
369			}
370			else if (field.hasClass("elementor-field-type-url")) {
371				var value = field.find("input").val();
372				field.find("input").removeAttr("aria-required");
373				if (value == "") {
374					field.find("input").val("https://rednumber_dev_check.com");
375				}
376			}
377			else if (field.hasClass("elementor-field-type-email")) {
378				var value = field.find("input").val();
379				field.find("input").removeAttr("aria-required");
380				if (value == "") {
381					field.find("input").val("[email protected]");
382				}
383			}
384			else if (field.hasClass("elementor-field-type-number")) {
385				var value = field.find("input").val();
386				field.find("input").removeAttr("aria-required");
387				field.find("input").removeAttr("min").removeAttr("max").removeAttr("aria-required");
388				if (value == "") {
389					field.find("input").val("29081990");
390				}
391			}
392			else if (field.hasClass("elementor-field-type-textarea")) {
393				var value = field.find("textarea").val();
394				field.find("textarea").removeAttr("aria-required");
395				if (value == "") {
396					field.find("textarea").val("rednumber_dev_check");
397				}
398			} else if (field.hasClass("elementor-field-type-select")) {
399				var value = field.find("select").val();
400				field.find("select").removeAttr("aria-required");
401				if (value == "") {
402					field.find("select").attr("data-check_required", "yes");
403					var myVal = field.find("select option:last").val();
404					field.find("select").val(myVal);
405				}
406			} else if (field.hasClass("elementor-field-type-acceptance")) {
407				if (field.find("input").is(':checked')) {
408					field.find("input").attr("data-logic-last", true);
409				} else {
410					field.find("input").removeAttr("aria-required");
411					field.find("input").attr("data-logic-last", false);
412					field.find("input").prop("checked", true);
413				}
414			} else if (field.hasClass("elementor-field-type-yee_input_masks")) {
415				var value = field.find("input").val();
416				field.find("input").removeAttr("aria-required");
417				if (value == "") {
418					field.find("input.elementor-field").inputmask("remove");
419					field.find("input.elementor-field").val("rednumber_dev_check");
420					field.find("input.yeeaddons_input_maks_check").val("yes")
421				}
422			}
423			else {
424				var value = field.find("input").val();
425				field.find("input").removeAttr("aria-required");
426				if (value == "") {
427					field.find("input").val("rednumber_dev_check");
428				}
429			}
430		}
431		function elementor_conditional_logic_get_value_by_id(id = "", form = "body") {
432			var rs = "";
433			if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-radio")) {
434				if ($(".elementor-field-group-" + id + " input:checked", form).length > 0) {
435					rs = $(".elementor-field-group-" + id + " input:checked", form).val();
436				}
437			}
438			else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-checkbox")) {
439				var data = [];
440				$(".elementor-field-group-" + id + " input:checked", form).each(function () {
441					data.push($(this).val());
442				})
443				rs = data.join(", ");
444			}
445			else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-select")) {
446				rs = $(".elementor-field-group-" + id + " select", form).val();
447			} else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-textarea")) {
448				rs = $(".elementor-field-group-" + id + " textarea", form).val();
449			}
450			else if ($(".elementor-field-group-" + id, form).hasClass("elementor-field-type-acceptance")) {
451				if ($(".elementor-field-group-" + id + " input", form).is(':checked')) {
452					rs = "on";
453				} else {
454					rs = "off";
455				}
456			}
457			else {
458				rs = $(".elementor-field-group-" + id + " input", form).val();
459			}
460			if (rs === undefined) {
461				return id;
462			} else {
463				return rs;
464			}
465		}
466		function elementor_conditional_logic_get_element_by_id(id = "", form = "") {
467			if ($('[data-id-repeater="form-field-' + id + '"]', form).length > 0) {
468				if ($('[data-i
468d-repeater="form-field-' + id + '"]', form).length > 0) {
469					return $('[data-id-repeater="form-field-' + id + '"]', form).closest(".elementor-field-group");
470				} else {
471					return $('[data-id-repeater="form-field-' + id + '-0"]', form).closest(".elementor-field-group");
472				}
473			} else {
474				if ($("#form-field-" + id, form).length > 0) {
475					return $("#form-field-" + id, form).closest(".elementor-field-group");
476				} else {
477					return $("#form-field-" + id + "-0", form).closest(".elementor-field-group");
478				}
479			}
480		}
481	})
482})(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.