如何使用Google表单或Google表格上的GAS限制基于ID的Google表单提交

问题描述 投票:1回答:3

我正在研究Google表格查询,该表格收集参与者对某个问题的投票。我想根据ID号限制参与者。我在想三种方法:

  1. 如果输入的ID不在给定列表中,则阻止提交表单。 (我更喜欢这种方法,但到目前为止找不到任何有用的代码)

  2. 通过onFormSubmit触发器使用
  3. Google表单上的GAS]提交表单后,

    删除链接的响应电子表格中的行。这是我的无效代码:

    function onFormSubmit(e) {
     // Grab the session data again so that we can match it to the user's choices.
    var response = [];
    var values = SpreadsheetApp.openById('1rT9tKAi6ZSvZzBaXNSPMJAt4RKnW- 
     9lqiE9zvZV').getDataRange().getValues();
    
    Browser.msgBox('Successful read');
    
    for (var i = 1; i < values.length; i++) {
      var indiv = values[I];
      var Fname = indiv[0];
      var Lname = indiv[1];
      var ID1 = indiv[2];
      var ID2 = indiv[3];
    
      // For every selection in the response, find the matching ID1 and title
      // in the spreadsheet and add the session data to the response array.
      if (e.namedValues[ID1] == ID1) {
        response.push(indiv);
      } else {
      Browser.msgBox('Your ID number does not matches the list');
      }
    }
    
    通过onChange触发器使用
  4. Google表格上的GAS
  5. 提交表单后,

    删除链接的响应电子表格中的行。这是我的最大努力:

    function onChange(e) {  
     var refvalues = 
     SpreadsheetApp.getActive().getSheetByName('members_sheet').getDataRange().getValues();
     var  sheet = SpreadsheetApp.getActive().getSheetByName('Form Responses 1');
     var  values = sheet.getDataRange().getValues();
    
     var indiv = values[values.length];
     var ID1 = indiv[2];
     var flag = 0;
      for (var i = 1; i < refvalues.length; i++) {
          var refindiv = refvalues[i];
          var refID1 = refindiv[2];
        if (ID1 == refID1) {
          flag = 1;
        }
     } 
    
     if (flag == 0) {
       sheet.deleteRow(values.length); 
     }
     };
    

    我在Javascript编码中是一个全新的人,所以可以得到任何帮助。

enter image description here

我正在研究Google表格查询,该表格收集参与者对某个问题的投票。我想根据ID号限制参与者。我在想三种方法:防止形式...

javascript google-apps-script google-sheets google-form
3个回答
1
投票

如果输入的ID不在给定列表中,则防止提交表单


0
投票

如果您希望将所有ID保留在电子表格中,请在代码开头尝试此操作。


0
投票

感谢ziganotschka的回答,我将代码更新为:

© www.soinside.com 2019 - 2024. All rights reserved.