Я смотрю несколько уроков и страниц о том, как открыть модальный диалог с помощью GAS.
Моя цель довольно проста. Я хочу открыть диалоговое окно с полем. Пользователь вводит значение, и я получаю его на следующих шагах моего скрипта.
В моей таблице
function openDialog() {
var html = HtmlService.createHtmlOutputFromFile('datePaiementDlg');
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.showModalDialog(html, 'Dialog title');
}
function returnDatePaiementDlg( values)
{
Logger.log(values);
Browser.msgBox(values);
}
HTML-страница:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>
<form>
<input type="date" name="datePaiement"/>
<input type="submit" value="Envoyer" class="action" onclick="form_data()" />
<input type="button" value="Fermer" class="action" onclick="closeIt()" />
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" />
<script>
function form_data(){
var values = $("input[name=datePaiement]).val();
google.script.run
.withSuccessHandler(closeIt)
.returnDatePaiementDlg(values);
};
function closeIt(){
google.script.host.close();
};
</script>
</body>
</html>
Я запускаю функцию openDialog () из пункта меню в электронной таблице Google.
Когда я нажимаю кнопку «Отправить», открывается новая пустая страница. Если я вернусь на свою страницу электронной таблицы, диалоговое окно все еще будет открыто (оно должно быть закрыто, нет?)
Тогда еще один вопрос: я хочу использовать значение, введенное пользователем после showModalDialog (). Но я не могу понять, как, так как кнопка «Отправить» вызывает другую функцию (returnDatePaiementDlg ()). Как я могу сделать "ссылку"?
Я что-то забыл ... что?
Спасибо