Checkbox 将复选框数据从html web表单保存到Google电子表格
除了函数没有选择复选框值之外,我的函数脚本工作得很好。相反,这些特定列只是在电子表格单元格中显示未定义。我的函数缺少什么,使它能够从html web表单中选择复选框值 我的html表单:Checkbox 将复选框数据从html web表单保存到Google电子表格,checkbox,google-apps-script,Checkbox,Google Apps Script,除了函数没有选择复选框值之外,我的函数脚本工作得很好。相反,这些特定列只是在电子表格单元格中显示未定义。我的函数缺少什么,使它能够从html web表单中选择复选框值 我的html表单: <form id="registration-form" action="https://script.google.com/macros/s/AKfycbx_fFp-WWHLvRV4SgSq-JPklxwZIyZnCD_04-zHzUYhjcwGpier/exec"> <di
<form id="registration-form" action="https://script.google.com/macros/s/AKfycbx_fFp-WWHLvRV4SgSq-JPklxwZIyZnCD_04-zHzUYhjcwGpier/exec">
<div class="grid-container">
<div class="grid-x grid-padding-x">
<div class="large-12 cell">
<fieldset>
<label>Check In:
<input type="date" name="checkin_date">
</label>
</fieldset>
<hr>
<fieldset>
<label>Check Out:
<input type="date" name="checkout_date">
</label>
</fieldset>
<hr>
<fieldset>
<legend>I will attend the IDIA meeting on 24<sup>th</sup> to 25<sup>th</sup> May</sup> (Please note this is a closed meeting for IDIA members only)</legend>
<input id="checkboxno" type="checkbox" name="attending_IDIA_meeting"><label for="checkboxno">Yes</label>
<input id="checkboxyes" type="checkbox" name="not_attending_IDIA_meeting"><label for="checkboxyes">No</label>
</fieldset>
<hr>
<fieldset>
<legend>I will take a transit hotel accommodation on:</legend>
<br>
<input id="checkbox1" type="checkbox" name="twenty"><label for="checkbox1" style="font-size: 16px;">20<sup>th</sup> May 2018</label>
<input id="checkbox2" type="checkbox" name="twenty_one"><label for="checkbox2" style="font-size: 16px;">21<sup>st</sup> May 2018</label>
<input id="checkbox3" type="checkbox" name="twenty_two"><label for="checkbox3" style="font-size: 16px;">22<sup>nd</sup> May 2018</label>
<input id="checkbox3" type="checkbox" name="twenty_three"><label for="checkbox3" style="font-size: 16px;">23<sup>rd</sup> May 2018</label>
</fieldset>
<hr>
<fieldset>
<label style="font-size: 15px;"> Transit Hotel Venue: (If invisible below, venue has been automatically set to Eka Hotel)
<input type="text" value="Eka Hotel" name="transit_venue" readonly>
</label>
</fieldset>
<hr>
<fieldset>
<legend>I will participate in the Learning visit on 24<sup>th</sup> May</legend>
<input id="attending_Learning_visit" type="checkbox" name="no"><label for="learningvisitno">Yes</label>
<input id="not_attending_Learning_visit" type="checkbox" name="yes"><label for="learningvisityes">No</label>
</fieldset>
<br>
<fieldset>
<label>Any other additional information you may wish to provide?
<textarea name="additional_info" rows="4"></textarea>
</label>
</fieldset>
<hr>
<button type="submit" class="button large expanded primary" style="background-color: #F26522;" id="submit-form">Submit</button>
</div>
</div>
</div>
</div>
</form>
如果希望它仅在选中复选框时写入值,请尝试向复选框元素添加值属性,例如
<input id="checkboxno" type="checkbox" name="attending_IDIA_meeting" value="true"><label for="checkboxno">Yes</label>
如果要在检查或未检查时写入值,请考虑切换到选项输入。有关这方面的更多详细信息,请参阅。不管怎样,选项输入可能会更好地满足您的需要。它工作得非常好,我想知道我的脚本如何在网页中显示成功消息,而不是在空白页上打印json结果。我该怎么办?我正在使用window.alert方法,但它不起作用。请查看。
var lock = LockService.getPublicLock();
lock.waitLock(30000); // wait 30 seconds before conceding defeat.
try {
// next set where we write the data - you could write to multiple/alternate destinations
var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key"));
var sheet = doc.getSheetByName(SHEET_NAME);
// we'll assume header is in row 1 but you can override with header_row in GET/POST data
var headRow = e.parameter.header_row || 1;
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var nextRow = sheet.getLastRow() + 1; // get next row
var row = [];
// loop through the header columns
for (i in headers) {
if (headers[i] == "Timestamp") { // special case if you include a 'Timestamp' column
row.push(new Date());
} else { // else use header name to get data
row.push(e.parameter[headers[i]]);
}
}
// more efficient to set values as [][] array than individually
sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
// return json success results
return ContentService
.createTextOutput(JSON.stringify({
"result": "success",
"row": nextRow
}))
.setMimeType(ContentService.MimeType.JSON);
} catch (e) {
// if error return this
return ContentService
.createTextOutput(JSON.stringify({
"result": "error",
"error": e
}))
.setMimeType(ContentService.MimeType.JSON);
} finally { //release lock
lock.releaseLock();
}
}
function setup() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
SCRIPT_PROP.setProperty("key", doc.getId());
}
<input id="checkboxno" type="checkbox" name="attending_IDIA_meeting" value="true"><label for="checkboxno">Yes</label>