【问题标题】:How can we make a password unique in google form using google script?我们如何使用谷歌脚本使密码在谷歌表单中唯一?
【发布时间】:2020-07-26 09:31:19
【问题描述】:

以下脚本创建一个表单,该表单仅接受仅存储在 google 表格(A1 到 A250)中的密码。

有没有一种方法可以使表单使用存储在 google 表格中的相同密码不接受多个响应。例如,如果我从两个不同的电子邮件 ID 填写表格,那么它不应该接受两次。输入密码后,其他人将无法再次使用它。

function validatePassword() {
  // Create new custom form
  var form = FormApp.create('new');
  var ss = SpreadsheetApp.openById('');
 
  var passwords = ss.getSheetByName('xyz').getRange('A1:A250').getValues();
  // Ex passwords: asd, 123, asd123
  const conditions = passwords.map(element => `${element}`).join('|')
  // Create first question to check the password, it must be required so that the user does not have access to the rest
  // of the form if failed to log in
  var item = form.addTextItem().setRequired(true);
  //item.setTitle('TEST TITLE');
  // Create valid ation for this question matching the password that we got from the sheet
  var textValidation = FormApp.createTextValidation()
    .setHelpText('You must enter the right ID code')
    .requireTextMatchesPattern(conditions)
    .build();
  item.setValidation(textValidation);
}

【问题讨论】:

  • Google 表单具有将用户限制为只能回复一次的内置功能,但它要求用户使用 Google 帐户登录。该设置位于常规设置下。如果用户输入密码作为表单上问题的答案,那么您想要做的事情是可能的,但需要注意的是他们可以无限次提交表单,但它永远不会被保存再次在工作表中。您需要存储有关密码以及表单是否已提交的数据。
  • 我们能否检查在响应表中输入的密码与用户尝试输入的密码。如果有匹配,那么它不应该允许用户这样做。
  • 有很多可能性。我你想要的是谷歌表单来防止表单被提交,那么只有一种方法可以做到这一点,那就是通过表单设置,并且用户必须登录。如果工作表链接到表单通过内置功能,您无法停止将数据保存到工作表中。您可能想要的是在工作表中使用 On Form Submit 触发器,并首先从事件对象中获取答案。
  • 谢谢艾伦。你有这个语法吗?
  • 您需要特定于您的情况的 JavaScript 代码。您需要做的第一件事是了解表格的表单提交触发器。阅读文档:Events - Sheets - Form Submit 您需要获取这些值。但在这个过程中还有许多其他步骤。首先设置 On Submit 触发器并获取值。

标签: javascript google-apps-script google-sheets unique google-forms


【解决方案1】:

问题

一旦输入密码,其他人就无法再次使用它。

使用可安装的表单提交触发器从相应的文本数据验证中删除不应再次使用的密码。

相关

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多