Personal portfolio website created with bootstrap.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.7 KiB

  1. $(function() {
  2. $("#contactForm input,#contactForm textarea").jqBootstrapValidation({
  3. preventSubmit: true,
  4. submitError: function($form, event, errors) {
  5. // additional error messages or events
  6. },
  7. submitSuccess: function($form, event) {
  8. event.preventDefault(); // prevent default submit behaviour
  9. // get values from FORM
  10. var name = $("input#name").val();
  11. var email = $("input#email").val();
  12. var phone = $("input#phone").val();
  13. var message = $("textarea#message").val();
  14. var firstName = name; // For Success/Failure Message
  15. // Check for white space in name for Success/Fail message
  16. if (firstName.indexOf(' ') >= 0) {
  17. firstName = name.split(' ').slice(0, -1).join(' ');
  18. }
  19. $this = $("#sendMessageButton");
  20. $this.prop("disabled", true); // Disable submit button until AJAX call is complete to prevent duplicate messages
  21. $.ajax({
  22. url: "././mail/contact_me.php",
  23. type: "POST",
  24. data: {
  25. name: name,
  26. phone: phone,
  27. email: email,
  28. message: message
  29. },
  30. cache: false,
  31. success: function() {
  32. // Success message
  33. $('#success').html("<div class='alert alert-success'>");
  34. $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
  35. .append("</button>");
  36. $('#success > .alert-success')
  37. .append("<strong>Your message has been sent. </strong>");
  38. $('#success > .alert-success')
  39. .append('</div>');
  40. //clear all fields
  41. $('#contactForm').trigger("reset");
  42. },
  43. error: function() {
  44. // Fail message
  45. $('#success').html("<div class='alert alert-danger'>");
  46. $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
  47. .append("</button>");
  48. $('#success > .alert-danger').append($("<strong>").text("Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!"));
  49. $('#success > .alert-danger').append('</div>');
  50. //clear all fields
  51. $('#contactForm').trigger("reset");
  52. },
  53. complete: function() {
  54. setTimeout(function() {
  55. $this.prop("disabled", false); // Re-enable submit button when AJAX call is complete
  56. }, 1000);
  57. }
  58. });
  59. },
  60. filter: function() {
  61. return $(this).is(":visible");
  62. },
  63. });
  64. $("a[data-toggle=\"tab\"]").click(function(e) {
  65. e.preventDefault();
  66. $(this).tab("show");
  67. });
  68. });
  69. /*When clicking on Full hide fail/success boxes */
  70. $('#name').focus(function() {
  71. $('#success').html('');
  72. });