main.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. (function($) {
  2. "use strict";
  3. function validatePhoneForE164(phoneNumber) {
  4. const regEx = /^\+[1-9]\d{10,14}$/;
  5. return regEx.test(phoneNumber);
  6. };
  7. var availableTags = [
  8. "Probleme beim VPN",
  9. "Passwort vergessen",
  10. "Kein WLAN",
  11. "Kein Internet",
  12. "Outlook öffnet sich nicht"
  13. ];
  14. $( "#subject" ).autocomplete({
  15. source: availableTags,
  16. autoFocus: false,
  17. minLength:2,
  18. delay:500
  19. });
  20. // Form
  21. var contactForm = function() {
  22. if ($('#contactForm').length > 0 ) {
  23. jQuery.validator.addMethod('intlphone', function(value) { return (value.match(/^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}(\s*(ext|x)\s*\.?:?\s*([0-9]+))?$/)); }, 'Bitte gib eine gültige Rufnummer ein!');
  24. $( "#contactForm" ).validate( {
  25. rules: {
  26. name: "required",
  27. subject: "required",
  28. location: "required",
  29. email: {
  30. required: false,
  31. email: true
  32. },
  33. phone: {
  34. required: false,
  35. intlphone: true
  36. },
  37. computer: {
  38. required: true,
  39. minlength: 4
  40. },
  41. message: {
  42. required: true,
  43. minlength: 5
  44. }
  45. },
  46. messages: {
  47. name: "Wie lautet dein Vor- und Nachname?",
  48. subject: "Bitte eine ganz kurze Beschreibung eingeben!",
  49. email: "Bitte gib uns eine Emailadresse unter der wir dich erreichen können.",
  50. phone: "Bitte gib uns eine Telefonnummer unter der wir dich erreichen können.",
  51. computer: "Bitte gib den Computer Namen ein. Dieser befindet sich auf dem Aufkleber auf dem Gerät.",
  52. message: "Beschreib bitte dein Problem so ausführlich aber auch so kurz wie möglich.",
  53. location: "Wo bist du aktuell?"
  54. },
  55. errorLabelContainer: ".errorTxt",
  56. errorElement : 'div',
  57. /* submit via ajax */
  58. submitHandler: function(form) {
  59. var $submit = $('.submitting'),
  60. waitText = 'Übertragung läuft...';
  61. $.ajax({
  62. type: "POST",
  63. url: "php/sendEmail.php",
  64. data: $(form).serialize(),
  65. beforeSend: function() {
  66. $submit.css('display', 'block').text(waitText);
  67. },
  68. success: function(msg) {
  69. if (msg == 'OK') {
  70. $('#form-message-warning').hide();
  71. setTimeout(function(){
  72. $('#contactForm').fadeIn();
  73. }, 1000);
  74. setTimeout(function(){
  75. $('#form-message-success').fadeIn();
  76. }, 1400);
  77. setTimeout(function(){
  78. $('#form-message-success').fadeOut();
  79. }, 8000);
  80. setTimeout(function(){
  81. $submit.css('display', 'none').text(waitText);
  82. }, 1400);
  83. setTimeout(function(){
  84. $( '#contactForm' ).each(function(){
  85. this.reset();
  86. });
  87. }, 1400);
  88. } else {
  89. $('#form-message-warning').html(msg);
  90. $('#form-message-warning').fadeIn();
  91. $submit.css('display', 'none');
  92. }
  93. },
  94. error: function() {
  95. $('#form-message-warning').html("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.");
  96. $('#form-message-warning').fadeIn();
  97. $submit.css('display', 'none');
  98. }
  99. });
  100. } // end submitHandler
  101. });
  102. }
  103. };
  104. contactForm();
  105. })(jQuery);