Google 脚本中的 document.getelementbyId 不起作用

2024-02-27

我正在尝试制作一个 google script web 应用程序,它从 HTML 表单获取输入并将输入传递给脚本。现在,该功能失败是因为document.getelementbyId('text')回报null而不是实际的表单值。我怎样才能解决这个问题?

索引.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      // Prevent forms from submitting.
      function preventFormSubmit() {
        var forms = document.querySelectorAll('form');
        for (var i = 0; i < forms.length; i++) {
          forms[i].addEventListener('submit', function(event) {
            event.preventDefault();
          });
        }
      }

      window.addEventListener('load', preventFormSubmit);

      function handleFormSubmit() {
        var formObject = document.getElementById('text');
        google.script.run.withSuccessHandler(setTable).getSportData(formObject);
        console.log(formObject);
      }

      function setTable(data) {
        var div = document.getElementById('output');
        div.innerHTML = createTable(data);
      }

      /**
      * Adds an html table
      */ 
      function createTable(tableData) {
      var table = document.createElement('table');
      var tableBody = document.createElement('tbody');

        tableData.forEach(function(rowData) {
          var row = document.createElement('tr');

          rowData.forEach(function(cellData) {
            var cell = document.createElement('td');
            cell.appendChild(document.createTextNode(cellData));
            row.appendChild(cell);
          });

          tableBody.appendChild(row);
        });

        table.appendChild(tableBody);
        document.body.appendChild(table);
      }
    </script>
  </head>
  <body>
    <form id="myForm" onsubmit="handleFormSubmit()">
      <input name="text" type="text" />
      <input type="submit" value="Submit" />
    </form>
    <div id="output"></div>
 </body>
</html>

Code.gs

//Initalization of global variables for use by the script's custom functions

var ss = SpreadsheetApp.openById("spreadsheetID");
var sheet = ss.getSheetByName("Sheet1");

var sportsFromSheet = sheet.getRange("D4:D12");
var namesFromSheet = sheet.getRange("B4:B12").getValues();
var timesFromSheet = sheet.getRange("A4:A12").getValues();
var NAMES = [];
var TIMES = [];

/**
 * Handles HTTP GET requests to the published web app.
 * @return {HtmlOutput} The HTML page to be served.
 */
function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

/**
 * Gets both names and Times of checked-in people from the spreadsheet from the private function getOutput.
 * @return {HtmlOutput} A 2D array containing the names and times.
 */
function getSportData(formObject) {
    getNamesInSport(formObject);
    getTimesInSport(formObject);

    var OUTPUT = [
      [NAMES],
      [TIMES]
      ];

  return OUTPUT;
}

//Puts the names of every person from an inputted sport into an array.
function getNamesInSport(input) { 
  var data = sportsFromSheet.getValues();

  for (var i = 0; i < data.length; i++) {
    if(data[i] == input){
      NAMES.push(namesFromSheet[i][0]);
    }
  }
}

//Puts the times of every person from an inputted sport into an array.
function getTimesInSport(input){
  var data = sportsFromSheet.getValues();

  for (var i = 0; i < data.length; i ++) {
    if(data[i] == input){
      TIMES.push(timesFromSheet[i][0]);
    }
  }
}

重复的为什么 jQuery 或 getElementById 等 DOM 方法找不到该元素? https://stackoverflow.com/questions/14028959/why-does-jquery-or-a-dom-method-such-as-getelementbyid-not-find-the-element.


您似乎已经回答了自己的问题。

document.getElementById('text')回报null因为... 您没有带有id="text".

document.getElementById将返回null

如果具有指定 ID 的元素不在文档中。 (Mozilla 开发者网络 https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById#Return_Value)

解决方案是<input type="text" name="text" id="text">

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google 脚本中的 document.getelementbyId 不起作用 的相关文章

  • 未记录的 Sheet API 限制问题

    我已经看过人们遇到类似问题的帖子 但找不到明确的答案 我尝试使用以下代码行检索 264735 个插槽的二维数组 var optionalArguments majorDimension ROWS valueRenderOption FORM
  • .setFormula() 并收到错误缺少 ) 参数列表

    I have setFormula 并坚持这一点 我认为问题在于逗号 在发布这个问题之前 我研究了几个在线论坛 但没有运气 也许这里有人可以帮助我 我确实知道使用的规则 and 这就是为什么我尝试了几个公式 但仍然收到错误消息 参数列表后缺
  • 将 Google 工作表图表导出为图像

    请您帮助了解如何使用谷歌脚本将图表导出到图像 我写了这段代码 但它不起作用 我担心 APIgetAs已弃用 function TestEmailCharts var sheet SpreadsheetApp getActiveSheet v
  • 在网页中显示 Google 工作表单元格的内容

    我有一个包含 html 代码的单元格的 google 工作表 我想知道在网页中显示此 html 的最佳方式 我尝试过谷歌电子表格 API 和谷歌可视化 API 以下是如何使用 Javascript 图表 API 显示单个单元格中的信息 也许
  • Google Apps 脚本:在电子邮件中发送 PDF 而不是 .zip 文件

    我有这段代码 可以从 Google 电子表格生成 PDF 文件并将其作为电子邮件附件发送 问题是它压缩文件const zipBlob Utilities zip blobs setName ss getName zip 我想更改它 以便附加
  • Gmail 菜单按钮

    我希望编写一个 Google 脚本来存档所有早于某个日期的电子邮件 在该脚本中 我将添加一个自定义按钮 就像在 Google Sheets 中一样 以便我可以运行我的脚本 Google 脚本中是否存在向 Gmail 中的 UI 添加菜单 按
  • 无法实施第三方 Google 日历会议插件

    我正在研究 Google 日历会议插件的实施并发现了一些问题 我按照文档执行示例代码 但它没有按预期工作 从我的角度来看 我的清单文件是完整的 但是当我尝试从 从清单部署 链接发布日历会议插件时 它会打开我的谷歌日历 但它不会显示我的会议
  • HTML 表单未运行 (withSuccessHandler) 函数

    我在 Google App Script Sheets 中有一个 HTML 表单 它要求用户提供日期值 然后提交该值 HTML 表单运行 唯一的问题是 obj 不记录 我不明白这是为什么 HTML
  • 谷歌表格根据今天的日期隐藏行

    在 Google Sheets 中 当 A 列中的日期等于或早于今天的日期时 我需要一个脚本来自动隐藏工作表 1 中的行 因此 如果今天是 2018 年 8 月 29 日 单元格 A3 中的日期是 2018 年 8 月 28 日 则第 3
  • Google Apps 脚本:比较日期

    我在比较 Google Apps 脚本中的日期时遇到了一个奇怪的问题 为此 我的工作表在 cell getValue 中有一个日期 所以 e range setNote cell getValue startDate 行中 注释显示两个看起
  • 当 Google 任务标记为“已完成”时如何触发 Google 脚本

    Google Apps 脚本允许由各种事件触发脚本 看here https developers google com apps script guides triggers 当用户将任务标记为已完成 在 Google 任务中 时 我想更新
  • 用于设置形状颜色的 Google Apps 脚本

    我正在查看 Google Apps 脚本参考here https developers google com apps script reference slides fill setSolidFill Color 并注意到有一种方法set
  • 您可以在不是在 Google 协作平台下创建的网站上使用 Google 脚本吗? [复制]

    这个问题在这里已经有答案了 Google 脚本有一种方法可以嵌入到 Google 网站中 但我想知道是否可以在非 Google 托管的网站上使用 Google 脚本 此 google 脚本的目的是作为 Javascript 的简单替代方案
  • 使用 Google Advanced Drive 服务通过 Apps 脚本在文件夹中创建新文件

    创建新文件有四种方法 DocsList 显示为DocsList在主列表中 内置于 Apps 脚本中 DriveApp 显示为Drive在主列表中 内置于 Apps 脚本中 驱动器 API 也显示为Drive在主列表中 必须添加到 Apps
  • 使用 Google Apps 脚本处理数组中输入元素中的多个文件

    我有一个表单 允许从下拉列表中选择一个项目并上传文件 项目的名称和 ID 保存在电子表格文档中 适用于一个文件 但我想上传多个文件 你能帮我修改一下脚本吗 HTML 部分如下所示 div class col md 4 col sm 6 di
  • 谷歌脚本循环性能

    我是 google 脚本的新手 我不确定为什么与 Excel VBA 的简单循环相比 我的性能如此差 我附上了下面的代码 它是一个大约 1200 行的循环 每秒删除大约 2 3 行 我写的脚本效率很低吗 我还不熟悉 Javascript 但
  • 将数据从一张纸复制到另一张纸的APP脚本

    我尝试使用此脚本将数据从一张工作表复制到另一张工作表 但是当我更新源工作表中的数据并运行脚本时 整个数据都会被复制 我只想将更新的数据复制到目标工作表而不重叠 谁能建议该怎么做 function copyPaste var ss Sprea
  • 获取 Google Apps 脚本中新创建的文件夹的 ID

    作为 Google Apps 脚本项目的一部分 我尝试将活动电子表格和几个上传的文件移动到在共享目录中创建的新文件夹中 我已经能够使用以下命令创建新文件夹 DriveApp getFolderById parentFolder create
  • 重命名带有“完整工作表”图表的工作表会导致电子表格重新加载

    Google 表格允许将图表移动到自己的表格中 不过 谷歌脚本似乎无法重命名这些工作表 而不会使电子表格崩溃并强制其重新加载 要明白我的意思 请尝试以下操作 1 创建新的电子表格并在其中放入一些数据 2 使用数据创建任何类型的图表 3 编辑
  • 用于清除多个范围的 Google 脚本。

    我有许多电子表格 每周填写一次 并在新的一周开始时关闭 我编写了一个脚本来遍历并清除许多不同工作表中的各种范围 请参阅下面的代码 我的问题是有没有更好的方法来做到这一点 而不是必须一次清除一个部分的范围并拥有一百万个clearContent

随机推荐

  • AdMob 广告未显示在模拟器中

    我正在我的应用程序中集成 AdMob 广告 我正在模拟器中运行 y 应用程序 并且在 admob 中我已将设备 ID 设置为模拟器 但即使在广告没有显示在模拟器中之后 下面是我的代码 XML
  • 在 Windows 上为 Haskell 安装 SDL (GHC)

    背景 我一直在使用光泽库进行一些简单的图表工作 但当需要更具交互性的东西时 我发现我需要一个更强大的库 经过一些研究后 我决定我喜欢 SDL 库的功能 并想尝试为其安装 Haskell 绑定 到目前为止我还没有成功 Part 1 如何安装和
  • hg revert 和 hg backout 之间有什么区别?

    Both hg revert and hg backout恢复先前修订版所做的更改 两者有什么区别 鉴于变更集的历史 A B C D E bad hg revert r B 保持当前版本 但更新工作目录 截至修订版B 它具有撤销更改的补丁的
  • iOS:全页插页式广告关闭后显示黑屏

    我用此代码显示全屏广告 它可以显示全页广告 问题是 当我关闭广告时 我只有一个空白屏幕 它不再显示我的应用程序 My code void showFullScreenAd if requestingAd NO interstitial AD
  • 谷歌地图意外地重置相机缩小

    我有基于谷歌地图的应用程序 允许用户查看标记 我遇到的问题是 当我放大以查看地图上的所有标记时 几秒钟后地图将重置为原始缩放级别 并且我无法查看所有标记 我希望地图保持在用户缩放级别 但我无法想出逻辑 这是我的代码 Override pro
  • Java/Swing:从另一个类引用组件

    我有一个 Swing GUI 使用 Netbeans GUI Builder 构建 有一个标签 我可以使用箭头键来移动它 按空格键调用另一个类 我如何从此类访问标签 例如得到职位 预先感谢您的帮助 第二类的示例代码 public class
  • 如何指定API版本?

    根据Azure DevOps 服务 REST API 参考 https learn microsoft com en us rest api azure devops view azure devops rest 4 1 请求 URI 的格
  • javascript getDate getMonth 返回错误的月份[重复]

    这个问题在这里已经有答案了 我知道还有其他关于此的帖子 但我无法弄清楚我在这里做错了什么 下面是我的代码 var d new Date var month d getMonth System log d System log month 我
  • javascript 中的 wget 相当于从给定 url 下载文件的功能是什么?

    wget http www example com file doc http www example com file doc 将该文件下载到本地磁盘 在 javascript 中 上面的等价物是什么 例如 考虑以下 html 片段
  • 在 Objective C 中将对象添加到 NSMutableArray 时遇到问题

    我正在使用 iPhone SDK 但在执行一些简单操作时遇到问题 我正在尝试添加一个NSNumber反对NSMutableArray实例变量 我尝试添加 NSNumbercard到 NSMutableArray已查看的卡片数组 但是如果不破
  • 如何点击外部关闭这个菜单?

    我有这个菜单 CSS message display none position absolute width 120px background fff color 000 font weight bold 当我点击它时 它会打开 mess
  • Twitter 引导程序预先输入多个值?

    我正在使用 Twitter Bootstrap 和 Jquery 我想使用预先输入文本区域的函数 我可以非常轻松地使用它 但我也需要它允许多项选择 我的意思是 当我从自动完成中选择一个单词后 它会将我带回文本区域 然后再添加一个空格 然后如
  • crt0.o 和 crt1.o -- 有什么区别?

    最近我一直在尝试调试一些低级工作 但找不到crt0 S对于编译器 avr gcc https linux die net man 1 avr gcc 但我确实找到了crt1 S 与相应的 o files 这两个文件有什么区别 是crt1完全
  • Quasar:使用q-file选取图像时如何显示图像?

    Quasar 和 Vue 的新手 我正在使用 q file 它允许选择文件并拖放文件 但是 如何显示预览图像 Q uploader 似乎可以工作 但我如何更改它的用户界面 来自 Quasar 的组件链接 https quasar dev v
  • Haskell 使用数据构造函数过滤嵌套列表

    假设我有以下数据类型 data Number Positive Integer Negative Integer deriving Eq Show 我有一个函数定义 请注意 我无法更改此定义 或以任何方式解决它 我必须使用嵌套列表并以某种方
  • set_error_handler函数不调用自动加载

    我有set error handler 函数设置为在出现错误时调用函数 在该函数中 我有自己的异常类实现 function acs error handler errno errstr errfile errline throw new a
  • android中找不到文件异常

    我在java中使用加密并在php中执行解密 现在 当我将加密参数传递给 url 时 我没有得到正确的响应 这是我的安卓代码 public static InputStream multipartPOST String urlStr Hash
  • 当 json 解析空响应时 Whatwg Fetch 失败,如何防止它?

    我在前端和后端 NodeJS 都使用 Fetch API 在将响应解析为 json 时 我经常遇到一个问题 response json 将返回一个承诺 所以我事先不知道响应的正文是什么 当正文为空时 JSON 解析将失败并出现错误 Synt
  • 添加新字段后 Prisma 架构无法正确更新

    正如标题所述 我在 Next JS 应用程序中使用 Prisma 2 我有一个非常简单的架构 model User id Int id default autoincrement firstName String middleName St
  • Google 脚本中的 document.getelementbyId 不起作用

    我正在尝试制作一个 google script web 应用程序 它从 HTML 表单获取输入并将输入传递给脚本 现在 该功能失败是因为document getelementbyId text 回报null而不是实际的表单值 我怎样才能解决