Я работаю в системе регистрации на собраниях, используя Google Sheets и Apps Script, и она делает почти все, что мне нужно для этого!Я научился передавать значения из скрипта .gs в боковую панель здесь: Скрипт Google Sheets / Apps - Передавать значения в боковую панель шаблона HTML , что было очень полезно для обеспечения функциональности приложения.
Приложение извлекает информацию об участнике из списка именных тегов и помещает ее на боковую панель, где она проверяется лицом, осуществляющим регистрацию.Моя проблема заключается в том, что одно из полей на боковой панели является элементом формы <select>
html, и я хотел бы передать в него значение по умолчанию из информации об элементе.
С полями ввода текста это довольно просто, и value=<?= fName =>
(например, для имени) работает для установки значения по умолчанию для поля имени в значении html.fName
, которое я передал в боковую панель.,Но поскольку различные опции вложены в теги <select></select>
, этот метод не работает.Я не смог найти решение этой проблемы в StackOverflow или в другом месте.
Функция .gs здесь:
function verifySidebar(memberInfo) {
//VerifyEvent displays sidebar, populated with data from memberInfo
//memberInfo consists of: [memberID, firstName, lastName, churchName, memberRole]
var html = HtmlService.createTemplateFromFile('VerifyEvent');
html.memberID = memberInfo[0];
html.fName = memberInfo[1];
html.lName = memberInfo[2];
html.cName = memberInfo[3];
html.memRole = memberInfo[4];
var rendered = html.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle('Verify Member Info')
.setWidth(300);
SpreadsheetApp.getUi().showSidebar(rendered);
}
А вот HTML-код для боковой панели:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<h2 id="headeralert">Verify Info and Select Role for Member:</h2>
<h3 id="memberID"><?= memberID ?></h3>
<form>
<p>First Name:<br><input type="text" id="fName" autocomplete="off" value=<?= fName ?>></p>
<p>Last Name:<br><input type="text" id="lName" autocomplete="offoff" value=<?= lName ?>></p>
<p>Church:<br><input type="text" id="cName" autocomplete="off" value=<?= cName ?>></p>
<p>Role:<br>
<select id="role" class="formField" autofocus value=<?= memRole ?>>
<option value="REC">RE Commissioner (VOTER)</option>
<option value="TEC">TE Commissioner (VOTER)</option>
<option value="REMBVOO">RE Mem by Virtue of Office (VOTER)</option>
<option value="CRE">Commissioned RE (VOTER)</option>
<option value="REA">RE Attendee (NON-VOTER)</option>
<option value="COR">Corresponding Mem (NON-VOTER)</option>
<option value="VIS">Visitor (NON-VOTER)</option>
</select></p>
<p>
<button name="submitID" onClick="event.preventDefault(); submitForm(); google.script.host.close();">Register</button>
</form>
<script>
function submitForm() {
var memberID = document.getElementById("memberID").textContent;
var firstName = document.getElementById("fName").value;
var lastName = document.getElementById("lName").value;
var cName = document.getElementById("cName").value;
var memRole = document.getElementById("role").value;
var regInfo = [memberID, firstName, lastName, cName, memRole];
google.script.run.pushToSheet(regInfo);
}
</script>
</body>
</html>