Skip to content

ashtonfei/google-apps-script-projects

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GAS-062 Typeform Style Form

Description

This is typeform style form built with Google Apps Script, Vue Material. One page per question form.

Demo App

Make a copy of the source code from my drive

Make a copy

If you prefer to use clasp

Script Type

Google Sheet

Form features

  • One page per question
  • Maximum form responses
  • Form vailaible during a specific date time
  • Form validation with REGEX
  • Form background images
  • Use previous inputs as an dynamic prefix in the description

Form Configurations

  • Maximum responses
    maxResponses: 500,
  • Form valid date time
    validFrom: new Date(2020, 0, 1, 8, 30, 0), // 2020 Jan 1st 8:30:00 am
    validTo: new Date(2020, 11, 25, 20, 30, 0), // 2020 Dec(11 + 1) 25th 8:30:00 pm
  • From item input
        {
            type: "input", // item type
            title: "Full name", // item title
            description: "What's your name please?", // item description
            placeholder: "Your full name", // item input placeholder
            pattern: ".+", // regex pattern for item validation
            modifier: "im", // regex modifier for item validation
            error: "This is a required question", // item error message
            required: true, // is item required
            valid: null, // item default valid status
            value: null, // item default value
            usePreviousAsPrefix: [0], // user previousitem input as an prefix in the description
            prefix: "Hi", // prefix world
        }
  • Form item radio
        {
            type: "radio", // item type
            title: "Gender", // item title
            description: "Your gender please, we'll keep it as a secret.", // item description
            error: "This is a required question", // item error message
            required: true, // is item required
            valid: null, // item default valid status
            value: null, //  item default value
            options: ["Male", "Female", "Other"], // options for the radio buttons
            usePreviousAsPrefix: [0], // user previousitem input as an prefix in the description
            prefix: "Hi", // prefix world
        }
  • Form item checkbox
        {
            type: "checkbox", // item type
            title: "Programming languages", // item title
            description: "Choose your favorite programming languages.", // item description
            min: 2, // minimun selection required
            max: null, // maximum selection allowed
            error: "Choose at least two", // item error message
            required: true, // is item required
            valid: null, // item default valid status
            value: [], //  item default value, must be an array
            options: ["JavaScript", "Python", "Visual Basic", "C#", "Java", "Lua", "C++"], // options for the radio buttons
            usePreviousAsPrefix: [0], // user previousitem input as an prefix in the description
            prefix: "Hi", // prefix world
        }
  • From item textarea
        {
            type: "textarea", // item type
            title: "Comments", // item title
            description: "Any comment about this form", // item description
            placeholder: "enter your comments here", // item input placeholder
            pattern: ".+", // regex pattern for item validation
            modifier: "im", // regex modifier for item validation
            error: "This is a required question", // item error message
            required: true, // is item required
            valid: null, // item default valid status
            value: null, // item default value
            usePreviousAsPrefix: [0], // user previousitem input as an prefix in the description
            prefix: "Hi", // prefix world
        }
  • Form item date
        {
            type: "date", // item type
            title: "Due date", // item title
            description: "Pick a date", // item description
            error: "This is a required question", // item error message
            required: true, // is item required
            valid: null, // item default valid status
            value: Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy-MM-dd"), // item default value
            usePreviousAsPrefix: [0], // user previousitem input as an prefix in the description
            prefix: "Hi", // prefix world
        }
  • Form item file uploader
        {
            type: "file", // item type
            title: "File", // item title
            description: "We need you to upload a file about yourself", // item description
            error: "This is a required question", // item error message
            data: null, // data for uploaded file, keep it null
            required: true, // is item required
            valid: null, // item default valid status
            value: null, // item default value
            maxSize: 5000, // max file size in KB
            fileTypes: "image/*, .pdf", // acceptable file types, null for all file types
            usePreviousAsPrefix: [0], // user previousitem input as an prefix in the description
            prefix: "Hi", // prefix world
        }

Screenshots

  • Start page image
  • Input page image
  • Radio page image
  • Checkbox page image
  • Textarea page image
  • Date page image
  • File input page image
  • End page image

YouTube