1$(function() { 2 3 $('#contactForm').find('input,textarea').jqBootstrapValidation({ 4 preventSubmit: true, 5 submitError: function($form, event, errors) { 6 // additional error messages or events 7 }, 8 submitSuccess: function($form, event) { 9 // disable submit button 10 $form.find(":submit").attr("disabled", true); 11 // prevent default submit behaviour 12 event.preventDefault(); 13 // get name 14 var name = $("input[name=name]").val(); 15 // set subject 16 $("input[name=_subject]").val('cornernote.github.io contact - ' + name); 17 // set name to first name 18 if (name.indexOf(' ') >= 0) { 19 name = name.split(' ').slice(0, -1).join(' '); 20 } 21 $.ajax({ 22 url: '//formspree.io/[email protected]', 23 method: 'POST', 24 dataType: 'json', 25 data: $form.serialize(), 26 cache: false, 27 success: function() { 28 // success message 29 $('#success').html('<div class="alert alert-success">'); 30 $('#success > .alert-success').html('<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>'); 31 $('#success > .alert-success').append('<strong>Your message has been sent. </strong>'); 32 $('#success').append('</div>'); 33 // clear all fields 34 $('#contactForm').trigger('reset'); 35 // enable submit button 36 $form.find(":submit").removeAttr("disabled"); 37 }, 38 error: function() { 39 // fail message 40 $('#success').html('<div class="alert alert-danger">'); 41 $('#success > .alert-danger').html('<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>'); 42 $('#success > .alert-danger').append('<strong>Sorry ' + firstName + ', it seems that my mail server is not responding. Please try again later!'); 43 $('#success').append('</div>'); 44 // enable submit button 45 $form.find(":submit").removeAttr("disabled"); 46 } 47 }) 48 }, 49 filter: function() { 50 return $(this).is(':visible'); 51 } 52 }); 53 54 // reset errors 55 $('#contactForm').find('input,textarea').focus(function() { 56 $('#success').html(''); 57 }); 58 59});
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.