PageSourceSearch

https://shop.cohab.space/wp-content/themes/cohab/js/gform.js?ver=1.1.67

js cohab.space collected 2026-10-10 01:39:00 UTC 3,340 bytes, 130 lines download raw bytes

1/**
2 * GravityForm Script file.
3 *
4 * @param {jQuery}   $
5 * @param {Window}   window
6 * @param {Document} document
7 * @package
8 */
9
10(function ($, window, document) {
11	'use strict';
12
13	$(document).ready(function () {
14		const formCheck = [
15			{
16				formId: 2,
17				requiredFields: [22],
18			},
19		];
20
21		// Check if form has required fields then disable submit button.
22		const gFormDisableSubmitButton = () => {
23			formCheck.forEach((form) => {
24				const { formId, requiredFields } = form;
25
26				// Check if form exists.
27				const $gform = $(`#gform_${formId}`);
28				if (!$gform.length) {
29					return;
30				}
31
32				// Check if form has required field IDs
33				let allFieldsExist = true;
34				requiredFields.forEach((fieldId) => {
35					const $field = $gform.find(`#input_${formId}_${fieldId}`);
36					if (!$field.length) {
37						allFieldsExist = false;
38					}
39				});
40
41				// Only proceed if all fields exist
42				if (!allFieldsExist) {
43					return;
44				}
45
46				gFormTriggerChangeValue(formId, requiredFields);
47
48				// If all above conditions are met then disable submit button on first load.
49				$gform
50					.find(`#gform_submit_button_${formId}`)
51					.prop('disabled', true);
52			});
53		};
54
55		// Check if all required fields are valid.
56		const gFormCheckRequiredFields = (formId, requiredFields) => {
57			let isRequiredFieldsValid = true;
58
59			requiredFields.forEach((fieldId) => {
60				const $field = $(`#input_${formId}_${fieldId}`);
61				if (!$field.length) {
62					isRequiredFieldsValid = false;
63					return;
64				}
65
66				if ($field.val() === '') {
67					isRequiredFieldsValid = false;
68					return;
69				}
70
71				// Enhanced password validation
72				if ($field.attr('type') === 'password') {
73					const $strengthIndicator = $(
74						`#input_${formId}_${fieldId}_strength_indicator`
75					);
76					const $confirmPassword = $(`#input_${formId}_${fieldId}_2`);
77					const passwordValue = $field.val();
78					const confirmValue = $confirmPassword.val();
79
80					if (
81						(!$strengthIndicator.hasClass('strong') &&
82							!$strengthIndicator.hasClass('good')) ||
83						!confirmValue ||
84						confirmValue !== passwordValue
85					) {
86						isRequiredFieldsValid = false;
87					}
88				}
89			});
90
91			return isRequiredFieldsValid;
92		};
93
94		// Trigger any change from required fields.
95		const gFormTriggerChangeValue = (formId, requiredFields) => {
96			requiredFields.forEach((fieldId) => {
97				const $field = $(`#input_${formId}_${fieldId}`);
98
99				// Handle password fields specially
100				if ($field.attr('type') === 'password') {
101					// Monitor main password field
102					$field.on('keyup change', function () {
103						validateAndUpdateButton(formId, requiredFields);
104					});
105
106					// Monitor confirmation password field
107					$(`#input_${formId}_${fieldId}_2`).on(
108						'keyup change',
109						function () {
110							validateAndUpdateButton(formId, requiredFields);
111						}
112					);
113				} else {
114					// Handle non-password fields
115					$field.on('change', function () {
116						validateAndUpdateButton(formId, requiredFields);
117					});
118				}
119			});
120		};
121
122		// New helper function to validate and update button state
123		const validateAndUpdateButton = (formId, requiredFields) => {
124			const isValid = gFormCheckRequiredFields(formId, requiredFields);
125			$(`#gform_submit_button_${formId}`).prop('disabled', !isValid);
126		};
127
128		gFormDisableSubmitButton();
129	});
130})(jQuery, window, document);

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.