PageSourceSearch

https://simpleseasonal.com/wp-content/plugins/clean-and-simple-con…/jquery.validate.contact.form.js?ver=4.12.2

js simpleseasonal.com collected 2026-10-03 22:10:54 UTC 4,482 bytes, 113 lines download raw bytes

1jQuery(document).ready(function ($) {
2
3    var $div = $("#cscf");
4
5    var $form = $div.find("#frmCSCF");
6
7    $form.find("#recaptcha_response_field").focus(function () {
8
9        $errele = $form.find("span[for='cscf_recaptcha']");
10        $errele.html('');
11
12    });
13
14    $form.validate({
15
16        errorElement: "span",
17
18        highlight: function (label, errorClass, validClass) {
19            $(label).closest('.form-group').removeClass('has-success').addClass('has-error');
20            $(label).closest('.control-group').removeClass('success').addClass('error'); // support for bootstrap 2
21
22        },
23        unhighlight: function (label, errorClass, validClass) {
24            $(label).closest('.form-group').removeClass('has-error').addClass('has-success');
25            $(label).closest('.control-group').removeClass('error').addClass('success'); // support for bootstrap 2
26        }
27    });
28
29    $form.submit(function (event) {
30        event.preventDefault();
31
32        if ($form.validate().valid()) {
33
34            $button = $(this).find("#cscf_SubmitButton");
35            $button.attr("disabled", "disabled");
36
37            $.ajax({
38                type: "post",
39                dataType: "json",
40                cache: false,
41                url: cscfvars.ajaxurl,
42                data: $($form).serialize() + "&action=cscf-submitform",
43                success: function (response, strText) {
44                    if (response.valid === true) {
45                        //show sent message div
46                        $formdiv = $div.find(".cscfForm");
47                        $formdiv.css('display', 'none');
48                        $messagediv = $div.find(".cscfMessageSent");
49                        if (response.sent === false) {
50                            $messagediv = $div.find(".cscfMessageNotSent");
51                        }
52
53                        $messagediv.css('display', 'block');
54
55                        if (isScrolledIntoView($div) == false) {
56                            jQuery('html,body')
57                                .animate({
58                                    scrollTop: $div.offset().top
59                                }, 'slow');
60                        }
61                    }
62
63                    else {
64                        // Clear any previous errors first
65                        $form.find("span.help-inline.help-block.error").html('').css('display', 'none');
66                        $form.find('.form-group').removeClass('has-error').addClass('has-success');
67                        $form.find('.control-group').removeClass('error').addClass('success');
68                        
69                        $.each(response.errorlist, function (name, value) {
70                            // Debug logging
71                            if (window.console) {
72                                console.log("Error for field: " + name + ", message: " + value);
73                            }
74                            
75                            $errele = $form.find("span[for='cscf_" + name + "']");
76                            if ($errele.length > 0) {
77                                $errele.html(value);
78                                $errele.css('display', 'block');
79                                $errele.closest('.form-group').removeClass('has-success').addClass('has-error');
80                                $errele.closest('.control-group').removeClass('success').addClass('error'); // support for bootstrap 2
81                            } else if (window.console) {
82                                console.log("Could not find error element for: cscf_" + name);
83                            }
84                        });
85                        $button.removeAttr("disabled");
86                    }
87                },
88                error: function (XMLHttpRequest, textStatus, errorThrown) {
89                    if (window.console) {
90                        console.log("Status: " + textStatus + "Error: " + errorThrown + "Response: " + XMLHttpRequest.responseText);
91                    }
92                    $button.removeAttr("disabled");
93
94                }
95
96            });
97
98        }
99        ;
100    });
101
102});
103
104
105function isScrolledIntoView(elem) {
106    var docViewTop = jQuery(window).scrollTop();
107    var docViewBottom = docViewTop + jQuery(window).height();
108
109    var elemTop = jQuery(elem).offset().top;
110    var elemBottom = elemTop + jQuery(elem).height();
111
112    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
113}

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.