PageSourceSearch

https://www.thomasbates.com/js/system/content/widgets/form_submit.js?ver=5

js thomasbates.com collected 2026-09-26 07:29:34 UTC 5,857 bytes, 169 lines download raw bytes

1var parent_editor_id='';
2var forms_catpcha_token='';
3
4function wz_content_widget_form_submit_refresh(input_data){
5    $('#form_submit_label').on('change', function() {
6        wz_content_widget_form_submit_return_result();
7    });
8
9    $('#form_identifier').on('change', function() {
10        wz_content_widget_form_submit_return_result();
11    });
12
13    $('#form_google_key').on('change', function() {
14        wz_content_widget_form_submit_return_result();
15    });
16
17    $('#form_success_message').on('change', function() {
18        wz_content_widget_form_submit_return_result();
19    });
20
21    wz_content_widget_form_submit_return_result();
22}
23
24function wz_content_widget_form_submit_return_result(){
25
26    var return_element='form_submit||'+$('#form_submit_label').val().trim()+'||'+$('#form_identifier').val().trim()+'||'+$('#form_success_message').val().trim()+'||'+$('#form_google_key').val().trim();
27    var element_comments='Form Submit Button|//|Label: '+$('#form_submit_label').val().trim()+'|//|Identifier: '+$('#form_identifier').val().trim();
28
29    wz_widget_return_result(parent_editor_id,return_element+'|//|'+element_comments);
30
31}
32
33function wz_content_widget_form_submit_captcha_success(token) {
34    forms_catpcha_token = token;
35}
36
37function wz_content_widget_form_submit(button_element) {
38
39    if($(button_element).data('has_captcha') == '1') {
40        // Get the captcha response token
41        const thisToken = grecaptcha.getResponse();
42
43        if (!forms_catpcha_token) {
44            alert('Please complete the captcha first');
45            return;
46        }
47
48        // Proceed with your action
49        wz_content_widget_form_perform_submit(button_element,thisToken);
50    } else {
51        wz_content_widget_form_perform_submit(button_element,'');
52    }
53
54}
55
56async function wz_content_widget_form_perform_submit(button_element,token) {
57    // Example: Call your API with the token
58    try {
59
60        let form_groups = wz_content_widget_form_get_groups(button_element);
61        let form_ids = wz_content_widget_form_get_group_ids(button_element);
62
63        let inputData={};
64
65        inputData["do"]="submit_form";
66        inputData["business_id"]=$(button_element).data('business_id');
67        inputData["forms"]=form_ids;
68        inputData["token"]=token;
69
70        for (var i = 0; i < form_groups.length; i++) {
71            var form_group = form_groups[i];
72            var form_elements = $('.forms_form_group_'+form_group).find('input, textarea, select');
73
74            form_elements.each(function(){
75                var form_element = $(this);
76                var form_element_name = form_element.attr('name');
77                var form_element_value = form_element.val();
78
79                // Handle array notation in names
80                var matches = form_element_name.match(/^([^\[]+)\[([^\]]+)\]$/);
81
82                if (matches) {
83                    // matches[1] would be "fields"
84                    // matches[2] would be the index/key
85                    if (!inputData[matches[1]]) {
86                        inputData[matches[1]] = {};
87                    }
88                    inputData[matches[1]][matches[2]] = form_element_value;
89                } else {
90                    // Handle regular names as before
91                    inputData[form_element_name] = form_element_value;
92                }
93            });
94        }
95
96        const response = await fetch(wz_config_ajax_url+'modules/store/forms.php', {
97            method: 'POST',
98            headers: {
99                'Content-Type': 'application/json'
100            },
101            body: JSON.stringify(inputData),
102        }).then(response => response.json()).then((json_response)=>{
103
104            if("result" in json_response){
105                if(json_response.result == 1){
106
107                    for (var i = 0; i < form_groups.length; i++) {
108                        var form_group = form_groups[i];
109
110                        $('.forms_form_group_'+form_group).find('input, textarea, select').each(function(){
111
112                            // Disable the input
113                            $(this).prop('disabled', true);
114
115                        });
116
117                        $('.forms_form_group_'+form_group).slideUp();
118
119                    }
120
121                    let button_uid = $(button_element).data('uid');
122                    $('#form_submit_'+button_uid).fadeOut(function(){
123
124                        if("message" in json_response) {
125                            $('#form_submit_'+button_uid).html(json_response.message);
126                        } else {
127                            $('#form_submit_'+button_uid).html('Thank y
127ou! The form has been submitted.');
128                        }
129
130                        $('#forms_success_message_'+button_uid).fadeIn();
131
132                    });
133
134                }else{
135                    if("message" in json_response) {
136                        alert(json_response.message);
137                    } else {
138                        alert('An error occurred - the form was not submitted.');
139                    }
140                }
141            }
142        });
143
144        // Handle response
145    } catch (error) {
146        console.error('Error:', error);
147    }
148}
149
150function wz_content_widget_form_get_groups(input_button_element){
151
152    var full_groups = $(input_button_element).data('form_group');
153
154    return full_groups.split(',');
155
156}
157function wz_content_widget_form_get_group_ids(input_button_element){
158
159    var returnIds = [];
160
161    var full_groups = wz_content_widget_form_get_groups(input_button_element);
162
163    for (var i = 0; i < full_groups.length; i++) {
164        returnIds.push($('.forms_form_group_'+full_groups[i]).data('form_id'));
165    }
166
167    return returnIds;
168
169}

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.