Получить значение текстового поля html в функции Script Script

Здесь что-то не так, и все предложения, которые я пробовал у других с подобными вопросами, похоже, не работают.

У меня есть два файла: myPage.html и myCode.gs в сценариях Google. Я развернул html-файл в качестве веб-приложения, и я выяснил (с помощью), как сделать событие onclick для кнопки «отправить», чтобы вызвать функцию электронной почты из файла myCode.gs.

Теперь я хочу вставить значение из текстового поля в html-файле в электронное письмо, которое вызывается из события onClick. Я попробовал document.getElementById('textBoxId').value , но я получаю следующую ошибку: «Reference Error:« document »не определен.« Что дает?

Файл myPage.html:

   Test Page         

Файл myCode.gs:

  function doGet() { return HtmlService.createHtmlOutputFromFile('myPage'); } function emailTech(){ var nameBox = document.getElementById('textBox').value; var message = "This is the text box value" + nameBox; MailApp.sendEmail("123@xyz.com", "This is the subject", message ); } 

Сообщение об ошибке правильное – в вашей функции Script Script функция emailTech() не существует переменной в области, которая называется document .

У вас есть два разных способа развертывания скрипта приложений ScriptApps. Поскольку вы используете службу HTML (и ваш пользовательский интерфейс представляет собой html-файл), вы не можете использовать методы службы UI (например, getElementById() ) для доступа к входным значениям. Итак, вы сделаете что-то другое.

Чтобы связать кнопку отправки и поле ввода вместе, используйте форму, заключенную в tags

. Кнопка «Отправить» по-прежнему будет иметь функцию onclick, но теперь это будет функция javascript, встроенная в ваш HTML- emailTech() , который передаст все входные данные формы в emailTech() .

В обработчике на стороне приложения-скрипта вы получите ввод формы как объект, с полями из формы в виде пар ключ-значение. Ключ – это name из поля.

Общее решение описано в этом ответе . Вот версия, которая соответствует вашему коду. Я оставил без внимания успех и неудачу, которые показывает Арун. Разумеется, вы должны встроить проверку ошибок, прежде чем развертывать это в реальной жизни.

Code.gs

 function doGet() { return HtmlService.createHtmlOutputFromFile('myPage'); } function emailTech(form){ var nameBox = form.techEmail; var message = "This is the text box value" + nameBox; MailApp.sendEmail("email@somewhere.com", "This is the subject", message ); } 

mypage.html

   Test Page