Skip to content

Instantly share code, notes, and snippets.

@kurai021
Created July 8, 2016 16:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kurai021/834031ad8c2b239f6cf8f62ad8940e0e to your computer and use it in GitHub Desktop.
Save kurai021/834031ad8c2b239f6cf8f62ad8940e0e to your computer and use it in GitHub Desktop.
Form handler to Google Spreadsheet
$(function(){
var forms = $('body').find('#gform');
$(forms).on('submit', handleFormSubmit);
});
function getFormData(form) {
var elements = $(form).find('input, checkbox, radio'); // all form elements
var data = {};
$(elements).each(function(index,element){
data[element.name] = element.value;
});
return data;
}
function handleFormSubmit(event) {
event.preventDefault();
var form = $(event.target);
var data = getFormData(form);
var encoded = Object.keys(data).map(function(k) {
return encodeURIComponent(k) + '=' + encodeURIComponent(data[k]);
}).join('&');
form.hide();
form.parent().find('.thank-you-message').show();
var request = $.ajax({
type: 'POST',
url: event.target.action,
data: encoded
});
request.done(function(data){
console.log(data);
});
}
function validate(form){
var valid = true;
var elements = $(form).find('input, checkbox, radio');
$(elements).each(function(index,element){
if( $(element).attr('required') && (!element.value || element.value == '') ){
valid = false;
$(element).addClass('invalid');
}
});
return valid;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment