Целью, которую я пытаюсь достичь, является получение значения ячейки на основе выбора диапазона формы и обновления текстовой области.Возвращаемое значение ячейки на основе выбора радио
Процесс: пользователь открывает диалоговое окно. Они выбирают полевой офис. Onclick запускает проверку функции. После выполнения проверки запускается google.script.run.withSuccessHandler (addSignatureLine) .getSignatureLine (cellElement); должен запускать и обновлять текстовое поле с помощью Id 'AdditionalMessage' с линией подписи, полученной из .getSignatureLine.
Вот две функции HTML код:
<script>
function addSignatureLine(signatureLine){
document.getElementById('AdditionalMessage').value = '\n\n'signatureLine;
};
function updateSignatureLine() {
var cellElement = document.getElementById('ET');
console.log('cellElement: ' + cellElement);
google.script.run.withSuccessHandler(addSignatureLine)
.getSignatureLine(cellElement);
};
function check() {
var ele = document.getElementsByName('fieldOfficeET');
var flag = 0;
for (var i = 0; i < ele.length; i++) {
if (ele[i].checked)
flag = 1;
}
if (flag == 1)
document.getElementById('Submit').disabled = false;
};
</script>
Вот этот скрипт getSignatureLine.gs
function getSignatureLine(cellObject) {
var ss = SpreadsheetApp.openById('googleSheetId');
var sheet = ss.getSheetByName('AMS Contact Information');
var firstRow = 2;
var lastRow = 10;
var dataRange = sheet.getRange(firstRow, 1, lastRow, 11);
var dataValues = dataRange.getValues();
for (var key in cellObject) { //Loop through all the data in the form
Logger.log('key: ' + key);
Logger.log('value: ' + cellObject[key]);
}
//Determines the row the Field Office is in
for (var rr = 0; rr < dataValues.length; rr++) {
if (dataValues[rr][0] == cellObject.fieldOfficeET) {
var r = rr + 2
break;
}
}
var signatureLine = sheet.getRange(r, 11).getValue();
Logger.log("signatureLine: " + signatureLine)
return signatureLine;
}
Где код не работает? Мы не можем отлаживать ваш код для вас. Никто не может понять, какие значения извлекаются и передаются. Я вижу, что у вас есть записи Logger.log, так что вы получаете неожиданные значения? Правильно ли 'cellElement' до его передачи на сервер? Используйте 'console.log ('cellElement:' + cellElement);' statement для печати значения в консоли браузера. –
Я добавил console.log в скрипт и получаю Uncaught SyntaxError: Неожиданный идентификатор и Uncaught ReferenceError: проверка не определена –
@SandyGood Я создал функцию updateSignatureLine, удалил чек из onclick в html и получил ошибку. Не открывать ReferenceError: updateSignatureLine не определен. Я предполагаю, что это то, где код терпит неудачу. –