Сначала я предоставлю вам код и кратко объясню, что я пытаюсь выполнить.HTML-форма сценария Google Apps не будет отправляться
Code.gs
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu("Custom Menu")
.addItem("Show sidebar", "showSidebar")
.addToUi();
}
function doGet() {
return HtmlService.createHtmlOutputFromFile("entry");
}
function showSidebar() {
var html = HtmlService.createHtmlOutputFromFile("entry")
.setTitle("My custom sidebar")
.setWidth(300);
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showSidebar(html);
}
function EnterData(fobject) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
sheet.activate();
ss.toast("Something Happened");
var range = sheet.getRange(1, 1);
range.setValue("It worked");
}
function ProgramSuccess() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.toast("Program Run Complete");
}
entry.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
// Prevent form from submitting
function preventFormSubmit() {
var forms = document.querySelectorAll('form');
for (var i = 0; i < forms.length; i++) {
forms[i].addEventListener('submit', function(event) {
event.preventDefault();
});
}
}
window.addEventListener('load', preventFormSubmit);
function FormSubmit(formObject) {
google.script.run.withSucessHandler(FormSuccess).EnterData(formObject);
}
function FormSuccess() {
google.script.run.ProgramSuccess;
google.script.host.close();
}
</script>
</head>
<body>
<form id="entryForm" onsubmit="FormSubmit(this)">
Name:<br>
<input type="text" name="name">
<br>
Client Name:<br>
<input type="text" name="clientname">
<br><br>
<input type="submit" value="Submit">
<input type="reset">
</form>
</body>
</html>
Целью этой программы является, чтобы открыть боковую панель в листе Google, который отображает страницу HTML, который имеет form (tag). Затем, когда вы нажимаете кнопку submit на боковой панели html, она должна запускать функцию EnterData
в Code.gs. Моя проблема в том, что эта функция не запускается, и ничего не происходит, когда я нажимаю кнопку отправки.
Любая помощь в этом была бы принята с благодарностью.
Я планировал использовать значения, которые пользователь вводит в форму следующим образом: 'range.setValue (fObject.name);' Я добавил в свои исправления, хотя и по-прежнему кажется, что я не могу заставить HTML вызвать серверные функции. –
Вы сделали орфографическую ошибку в файле ** entry.html **. Это должно быть 'google.script.run.withSuccessHandler' вместо' google.script.run.withSucessHandler'. –
О, ничего себе! Спасибо. Я думаю, вы можете прочитать свой код 10 раз и до сих пор не найти простейших, если ошибки –