Google Формы onsubmit

как можно ссылаться на кнопку "Отправить" формы по умолчанию, чтобы связать 'onsubmit' триггер с другим действием? Спасибо.

например, с onsubmit,

Logger.log('do something');

5 ответов


никто не знает. Служба форм не позволяет осуществлять программный контроль над продуктом. Есть открыть вопрос в трекере проблем для этой общей темы. Звезда его "голосовать", и получать обновления.

однако, вы не заблудились. В электронной таблице, получающей ответы формы, вы можете добавить скрипт с установленным триггером для запуска "On form submit". Оттуда вы можете сделать много вещей для представленных данных, включая ведение журнала, как вы хотите... но ничего сама форма.

Triggers

эти ссылки объясняют триггеры и события.


вместо добавления скрипта в электронную таблицу, получающую ответы из формы (как в ответе Mogsdad), я добавил скрипт, который запускается кнопкой отправки формы.

Шаг 1: сначала создайте форму Google

sample Google Form

Шаг 2: затем в меню нажмите инструменты->редактор скриптов

Form editor menu bar

Шаг 3: дать функции имя onSubmit()

Script editor

Шаг 4: написать код для отправки электронной почты, как это, а затем проверить, нажав кнопку Run

function onSubmit() {
  MailApp.sendEmail("fred@email.com,alice@email.com",
                    "Subject",
                    "A new application has been submitted.\n\n" +
                    "Here is the link to all Applications:\n" +
                    "https://docs.google.com/spreadsheets/x/1-fdasjhFAKEfdaahfkhsa/",
                    {name:"From Name"});
}

Шаг 5: в меню редактора скриптов нажмите Run, или нажмите играть кнопка на панели инструментов для проверки кода (например, убедитесь, что вы получили письмо)

Menu bar Run command

Шаг 6: в меню редактора скриптов нажмите Ресурсы-> Текущая триггеры проекта

Script Editor menu bar

Шаг 7: настройки событий From form On form submit

Google App Triggers

Шаг 8: затем в меню редактора форм нажмите инструменты->Диспетчер скрипт и убедитесь, что ваш сценарий будет выбран

Script manager

Шаг 9: попробовать форму. Вы должны получить электронное письмо после нажатия кнопки отправить форму кнопка.

Google Apps live Form


Это старый ответ.

В настоящее время (январь 2014) есть два способа для onSubmit. Просто сделать функцию onSubmit (), который якобы (это не работает для меня...) разрешает ограниченный набор действий только с разрешения текущего отправляющего пользователя. Например, вы не можете получить доступ к его отправленной электронной почте или изменить базовую форму для следующей отправки.

тогда есть триггер на submit, который вы можете добавить и прикрепить к любой функции и сделать все, что вы хотите под своими собственными разрешениями. выглядит так же, как скриншот триггера добавления в ответ выше, за исключением того, что его первый столбец показывает методы в вас формирует скрипт, следующий столбец читает: из-Форма и в третьем столбце вы выбираете: на Submit.

обычно ваш метод получит событие e, которое e.значения совпадают со значениями, сохраненными в электронной таблице. Так что

функция formSubmitted (e){ ...


Кажется, что есть два приложения, которые запускают код: (1) форма и (2) электронная таблица, связанная с ответами формы.

(1) не так много можно сделать программно из формы, поскольку событие не отправляется функциям, как отмечено Mogsdad и JohnB выше. Например, можно отправить электронное письмо "в форме отправки" или "в открытом", но без объекта события нельзя даже записать номер или строки или что-либо о документе или отправке.

(2) Однако если электронная таблица связана с ответами формы, то триггер может быть установлен в электронной таблице, где у вас есть доступ к событию и, следовательно, строке, столбцу и другим данным.

из связанного ответа Google Spreadsheet:

  • Шаг 1: Инструменты - > редактор скриптов
  • Шаг 2: Напишите некоторый код, например:

Код.gs:

function onSpreadsheetSubmit(e) {
     var row = e.range.getRow();
     MailApp.sendEmail("me@example.com",
                "Your subject, rows: "+ row,
                "A new application has been submitted on row: "+
                row,
                {name:"From your friendly spreadsheet"});
}
  • Шаг 3: выполнить > выполнить функцию > onSpreadsheetSubmit (или |> икона)
    • событие, вероятно, не имеет фактической строки, потому что тест не связан с реальной отправки.
  • Шаг 4: Вам будет предложено выбрать пользователя и авторизовать себя
  • Шаг 5: изменить > триггеры текущего проекта (или значок часов)
  • Шаг 6: Добавьте новый триггер
  • Шаг 7: onSpreadsheetSubmit / из электронной таблицы / в форме отправить
  • Шаг 8: аутентификация и сохранение (или реверс)
  • Шаг 9: тест, ожидая (или выполняя) реальную форму представления
  • Шаг 10: проверьте свою электронную почту

для получения дополнительной информации: https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events


JohnB это как выше отлично. Обновление (Ноябрь 2017):

  • Шаг 2: "Редактор Сценариев..."в вертикали "..."бургер меню в правом верхнем углу формы
  • Шаг 6: "триггеры проекта" находится в (часы, как значок) (второй значок отображается выше).
  • Шаг 7: Нажмите "Добавить новый триггер", игнорируйте предупреждение" нет myFunctions".
  • Шаг 8: кажется, не существует,может быть, не нужно, работает для меня без.

многие шаги выше требуют проверки / принятия владельцем формы.