Я считаю, что ваша цель заключается в следующем.
- Вы хотите установить значение, полученное из ячейки "A2" листа
Method
в активной электронной таблице, в качестве значения по умолчанию для textarea
. - Когда нажата кнопка «Добавить способ приготовления», вы хотите извлечь значения из
textarea
и поместить значения в ячейку «A2» листа Method
в активной электронной таблице. - Вы хотите узнать причину проблемы
Sidebar appears with blank <textarea> and does not send updated value to the cell.
.
Для этого, как насчет этого ответа?
Очки модификации:
- О
getDefaultMethod()
на стороне клиента, в вашем скрипте требуется вернуть значение из RecipeBuilder.getDefaultMethod()
. В вашем текущем скрипте значение не возвращается. Поэтому при загрузке HTML значение, извлеченное из ячейки "A2" листа Method
в активной электронной таблице, не устанавливается на textarea
. - О
addNewMethod()
в библиотеке GAS сторона, var ss = SpreadsheetApp.getActiveSpreadsheet;
не запустить метод. Поэтому, пожалуйста, добавьте ()
. - Я думаю, что это является причиной вашей проблемы.
Модифицированный скрипт:
Когда ваш скрипт модифицируется, пожалуйста, измените как
Измените getDefaultMethod()
на стороне клиента следующим образом.
С:
function getDefaultMethod(){
RecipeBuilder.getDefaultMethod();
}
На:
function getDefaultMethod(){
return RecipeBuilder.getDefaultMethod(); // Modified
}
И, пожалуйста, измените addNewMethod()
на стороне библиотеки GAS следующим образом .
С:
function addNewMethod(form_data)
{
var ss = SpreadsheetApp.getActiveSpreadsheet;
var sheet = ss.getSheetByName('Method');
var cookingMethod = form_data.method;
sheet.getRange('A2').setValue(cookingMethod);
}
Кому:
function addNewMethod(form_data)
{
var ss = SpreadsheetApp.getActiveSpreadsheet(); // Modified
var sheet = ss.getSheetByName('Method');
var cookingMethod = form_data.method;
sheet.getRange('A2').setValue(cookingMethod);
}
Примечание:
- В вашем сценарии, если клиентская сторона НЕ является сценарием, связанным с контейнерами Google Spreadsheet и Google Spreadsheet на стороне клиента нет листа
Method
, возникает ошибка. Поэтому, пожалуйста, будьте осторожны с этим.