62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
|
/**
|
||
|
* @file
|
||
|
* A JavaScript file for the contact form.
|
||
|
*/
|
||
|
|
||
|
(function ($) {
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
// Contact form.
|
||
|
$('.contact-form').each(function () {
|
||
|
var $contact_form = $(this);
|
||
|
var $contact_button = $contact_form.find('.form-submit');
|
||
|
var contact_action = '/php/contact.php';
|
||
|
|
||
|
// Display the hidden form.
|
||
|
$contact_form.removeClass('hidden');
|
||
|
|
||
|
// Wait for a mouse to move, indicating they are human.
|
||
|
$('body').mousemove(function () {
|
||
|
// Unlock the form.
|
||
|
$contact_form.attr('action', contact_action);
|
||
|
$contact_button.attr('disabled', false);
|
||
|
});
|
||
|
|
||
|
// Wait for a touch move event, indicating that they are human.
|
||
|
$('body').on('touchmove', function () {
|
||
|
// Unlock the form.
|
||
|
$contact_form.attr('action', contact_action);
|
||
|
$contact_button.attr('disabled', false);
|
||
|
});
|
||
|
|
||
|
// A tab or enter key pressed can also indicate they are human.
|
||
|
$('body').keydown(function (e) {
|
||
|
if ((e.keyCode === 9) || (e.keyCode === 13)) {
|
||
|
// Unlock the form.
|
||
|
$contact_form.attr('action', contact_action);
|
||
|
$contact_button.attr('disabled', false);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Mark the form as submitted.
|
||
|
$contact_button.click(function () {
|
||
|
$contact_form.addClass('js-submitted');
|
||
|
});
|
||
|
|
||
|
// Display messages.
|
||
|
if (location.search.substring(1) !== '') {
|
||
|
switch (location.search.substring(1)) {
|
||
|
case 'submitted':
|
||
|
$('.contact-submitted').removeClass('hidden');
|
||
|
break;
|
||
|
|
||
|
case 'error':
|
||
|
$('.contact-error').removeClass('hidden');
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
})(jQuery);
|