PageSourceSearch

https://www.hindujacollege.edu.in/assets/js/contact.form.js

js hindujacollege.edu.in collected 2026-10-07 06:04:27 UTC 6,417 bytes, 200 lines download raw bytes

1/**
2*
3* -----------------------------------------------------------------------------
4*
5* Template : Educavo - Education HTML Template
6* Author : rs-theme
7* Author URI : http://www.rstheme.com/
8*
9* -----------------------------------------------------------------------------
10*
11**/
12
13/*(function($) {
14    'use strict';
15    // Get the form.
16    var form = $('#contact-form');
17
18    // Get the messages div.
19    var formMessages = $('#form-messages');
20
21    // Set up an event listener for the contact form.
22    $(form).submit(function(e) {
23        // Stop the browser from submitting the form.
24        e.preventDefault();
25
26        // Serialize the form data.
27        var formData = $(form).serialize();
28
29        // Submit the form using AJAX.
30        $.ajax({
31            type: 'POST',
32            url: $(form).attr('action'),
33            data: formData
34        })
35        .done(function(response) {
36            // Make sure that the formMessages div has the 'success' class.
37            $(formMessages).removeClass('error');
38            $(formMessages).addClass('success');
39
40            // Set the message text.
41            $(formMessages).text(response);
42
43            // Clear the form.
44            $('#name, #email, #phone, #subject, #message').val('');
45        })
46        .fail(function(data) {
47            // Make sure that the formMessages div has the 'error' class.
48            $(formMessages).removeClass('success');
49            $(formMessages).addClass('error');
50
51            // Set the message text.
52            if (data.responseText !== '') {
53                $(formMessages).text(data.responseText);
54            } else {
55                $(formMessages).text('Oops! An error occured and your message could not be sent.');
56            }
57        });
58    });
59
60})(jQuery);*/
61
62// Yash Code
63(function($) {
64    'use strict';
65
66    var form = $('#contact-form');
67    var formMessages = $('#form-messages');
68
69    // Utility functions
70    function isValidEmail(email) {
71        var regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
72        return regex.test(email);
73    }
74
75    function showError(inputId, message) {
76        $('#' + inputId).addClass('is-invalid');
77        $('#' + inputId).next('.error-msg').remove(); // remove previous
78        $('#' + inputId).after('<div class="error-msg text-danger">' + message + '</div>');
79    }
80
81    function clearError(inputId) {
82        $('#' + inputId).removeClass('is-invalid');
83        $('#' + inputId).next('.error-msg').remove();
84    }
85
86    // Field blur validations
87    $('#name').on('blur', function() {
88        var name = $(this).val().trim();
89        if (name.length > 150) {
90            showError('name', 'Name cannot exceed 150 characters.');
91        } else {
92            clearError('name');
93        }
94    });
95
96    // $('#email').on('blur', function() {
97    //     var email = $(this).val().trim();
98    //     if (!isValidEmail(email)) {
99    //         showError('email', 'Please enter a valid email address.');
100    //     } else {
101    //         clearError('email');
102    //     }
103    // });
104
105    $('#phone').on('input', function() {
106        this.value = this.value.replace(/[^0-9]/g, '');
107    });
108
109    // $('#phone').on('blur', function() {
110    //     var phone = $(this).val().trim();
111    //     if (!/^\d{10}$/.test(phone)) {
112    //         showError('phone', 'Phone number must be exactly 10 digits.');
113    //     } else {
114    //         clearError('phone');
115    //     }
116    // });
117
118    // Form submit with validation
119    $(form).submit(function(e) {
120        e.preventDefault();
121
122        var name = $('#name').val().trim();
123        var email = $('#email').val().trim();
124        var phone = $('#phone').val().trim();
125        var subject = $('#subject').val().trim();
126        var message = $('#message').val().trim();
127
128        let hasError = false;
129
130        // Name validation
131        if (name.length > 150) {
132            showError('name', 'Name cannot exceed 150 characters.');
133            hasError = true;
134        } else {
135            clearError('name');
136        }
137
138        // Email validation
139        if (!isValidEmail(email)) {
140            showError('email', 'Please enter a valid email address.');
141            hasError = true;
142        } else {
143            clearError('email');
144        }
145
146        // Phone validation
147        if (!/^\d{10}$/.test(phone)) {
148            showError('phone', 'Phone number must be exactly 10 digits.');
149            hasError = true;
150        } else {
151            clearError('phone');
152        }
153
154        if (hasError) {
155            return; // stop form submit if errors
156        }
157
158        var formData = $(form).serialize();
159
160        // Proceed to AJAX submit
161        $.ajax({
162            type: 'POST',
163            url: $(form).attr('action'),
164            data: formData
165        })
166        .done(function(response) {
167            // $(formMessages).removeClass('error').addClass('success').text(response);
168            // $('#name, #email, #phone, #subject, #message').val('');
169            // $('.error-msg').remove();
170            let res = typeof response === 'string' ? JSON.parse(response) 
170: response;
171
172            if (res.status === 'success') {
173                // $(formMessages).removeClass('error').addClass('success').text(res.message);
174                $(formMessages).removeClass('error').addClass('success').text(res.message).show();
175                $('#name, #email, #phone, #subject, #message').val('');
176                $('.error-msg').remove(); // clear all error messages
177
178                setTimeout(function() {
179                    $(formMessages).fadeOut('slow', function() {
180                        $(this).text('').removeClass('success').show();
181                        location.reload();
182                    });
183                }, 2000);
184            } else {
185                $(formMessages).removeClass('success').addClass('error').text(res.message);
186            }
187        })
188        .fail(function(data) {
189            // $(formMessages).removeClass('success').addClass('error');
190            // if (data.responseText !== '') {
191            //     $(formMessages).text(data.responseText);
192            // } else {
193            //     $(formMessages).text('Oops! An error occurred and your message could not be sent.');
194            // }
195            $(formMessages).removeClass('success').addClass('error');
196            $(formMessages).text('Oops! An error occurred and your message could not be sent.');
197        });
198    });
199
200})(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.