Google Формы onsubmit
как можно ссылаться на кнопку "Отправить" формы по умолчанию, чтобы связать 'onsubmit' триггер с другим действием? Спасибо.
например, с onsubmit,
Logger.log('do something');
5 ответов
никто не знает. Служба форм не позволяет осуществлять программный контроль над продуктом. Есть открыть вопрос в трекере проблем для этой общей темы. Звезда его "голосовать", и получать обновления.
однако, вы не заблудились. В электронной таблице, получающей ответы формы, вы можете добавить скрипт с установленным триггером для запуска "On form submit". Оттуда вы можете сделать много вещей для представленных данных, включая ведение журнала, как вы хотите... но ничего сама форма.
эти ссылки объясняют триггеры и события.
вместо добавления скрипта в электронную таблицу, получающую ответы из формы (как в ответе Mogsdad), я добавил скрипт, который запускается кнопкой отправки формы.
Шаг 1: сначала создайте форму Google
Шаг 2: затем в меню нажмите инструменты->редактор скриптов
Шаг 3: дать функции имя onSubmit()
Шаг 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, или нажмите играть кнопка на панели инструментов для проверки кода (например, убедитесь, что вы получили письмо)
Шаг 6: в меню редактора скриптов нажмите Ресурсы-> Текущая триггеры проекта
Шаг 7: настройки событий From form
On form submit
Шаг 8: затем в меню редактора форм нажмите инструменты->Диспетчер скрипт и убедитесь, что ваш сценарий будет выбран
Шаг 9: попробовать форму. Вы должны получить электронное письмо после нажатия кнопки отправить форму кнопка.
Это старый ответ.
В настоящее время (январь 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: кажется, не существует,может быть, не нужно, работает для меня без.
многие шаги выше требуют проверки / принятия владельцем формы.