HTML表单下拉框数据无法同步至Google Sheets的Job工作表问题求助
问题解决:下拉菜单选中值无法同步到工作表
问题根源
你的<select>元素仅设置了id="customer",但缺少**name="customer"属性**。表单提交时,只有带有name属性的表单控件才会被纳入formObject,这就是Note和隐藏字段能正常传输,但选中的客户名称无法同步的原因。
修复步骤
- 给下拉菜单添加name属性
在Index.html中,修改<select>标签,补充name="customer":
<select id="customer" name="customer"> </select>
- 明确指定目标工作表(可选但推荐)
当前processForm函数使用getActiveSheet(),如果切换了工作表可能导致数据存入错误位置,建议直接指定"Jobs"工作表:
function processForm(formObject){ var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Jobs"); sheet.appendRow([formObject.key, formObject.driver, formObject.customer, formObject.phone_Number, formObject.note, formObject.fill_Date, formObject.history, formObject.latLong, formObject.color, formObject.gallons, formObject.lbs_Gal, formObject.status, ]); }
修改后的完整关键代码片段
Index.html(下拉菜单部分)
<b><label for="customer">Customer Location(s)</label> <select id="customer" name="customer"> </select> <script> (function () { google.script.run.withSuccessHandler( function (selectList) { var select = document.getElementById("customer"); for( var i=0; i<selectList.length; i++ ) { var option = document.createElement("option"); option.text = selectList[i][0]; select.add(option); } } ).getSelectList(); }()); </script>
Code.gs(数据处理函数)
function processForm(formObject){ var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Jobs"); sheet.appendRow([formObject.key, formObject.driver, formObject.customer, formObject.phone_Number, formObject.note, formObject.fill_Date, formObject.history, formObject.latLong, formObject.color, formObject.gallons, formObject.lbs_Gal, formObject.status, ]); }
内容的提问来源于stack exchange,提问作者cwyan
相关产品推荐
相关产品推荐

