如何在Google Sheet App Script表单提交逻辑中仅设置C5为必填字段
代码修改方案
将原有的全字段非空校验逻辑替换为仅校验C5单元格的逻辑即可,修改后的完整代码如下:
function submitData() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var formSS = ss.getSheetByName("Form"); //Form Sheet var datasheet = ss.getSheetByName("OrderInput"); //Input Values var values = [[formSS.getRange("C5").getValue(), formSS.getRange("C7").getValue(), formSS.getRange("C9").getValue(), formSS.getRange("C11").getValue(), formSS.getRange("C13").getValue()]]; // 仅校验必填字段C5是否为空 if (formSS.getRange("C5").getValue() === '') { SpreadsheetApp.getUi().alert('Please enter mandatory field in C5.'); } else { datasheet.getRange(datasheet.getLastRow()+1, 2, 1, 5).setValues(values); SpreadsheetApp.getUi().alert('Request successfully submitted!'); formSS.getRange("C5").clear(); formSS.getRange("C7").clear(); formSS.getRange("C9").clear(); formSS.getRange("C11").clear(); formSS.getRange("C13").clear(); } }
具体修改点
- 移除了原代码中遍历所有表单字段判空的for循环逻辑,不再校验C7、C9、C11、C13的空值状态
- 新增单独针对C5单元格的非空校验,仅当C5为空时触发告警拦截提交,告警文案同步替换为要求内容
- 原有数据写入、提交成功提示、清空表单的逻辑全部保留,不影响原有提交流程
你也可以直接复用已经读取的values数组判断,将校验逻辑替换为
if (values[0][0] === '')即可,不需要重复读取C5单元格的值,两种写法效果完全一致。
内容的提问来源于stack exchange,提问作者Roh
相关产品推荐
相关产品推荐

