首页 > 解决方案 > Google Apps 脚本未收到多个复选框选择

问题描述

我有一个接收表单数据的 WebApp。部分数据来自复选框:

<form id="intakeForm" class="labels-hidden-form custom-form" action="/new-patient-form/"
enctype="multipart/form-data" novalidate="novalidate">   
    <input type="checkbox" name="intake_symptoms" value="coughing">Coughing<br>
    <input type="checkbox" name="intake_symptoms" value="sneezing">Sneezing<br>
    <input type="checkbox" name="intake_symptoms" value="vomiting">Vomiting<br>

我正在使用以下函数来序列化所有表单数据以发送到 GAS。

  (function ($, a) {
    $.fn.serializeObject = function () {
      var b = {};
      $.each(this.serializeArray(), function (d, e) {
        var f = e.name,
          c = e.value;
        b[f] = b[f] === a ? c : $.isArray(b[f]) ? b[f].concat(c) : [b[f], c];
      });
      return b;
    };
  })(jQuery); 

当我console.log使用上面的函数创建的对象时,它会显示 s 预期:

摄入症状:(2)[“咳嗽”,“呕吐”]

但是,当我在 GAS 和对象的响应中将值发回时,console.log它只显示第一个复选框

摄入症状[]:“咳嗽”

这是我用来将提交的值发送回网页的代码

function doGet(e) {
  var params = e.parameter
  var result = {};
  try {
    result = {
      status: start(params),
      rawVals: params,
      errs: errors
    }
  } catch (f) {
    result.error = f.toString();
  }
  return ContentService     
  .createTextOutput(e.parameters.callback + '(' + JSON.stringify(result) + ')')
  .setMimeType(ContentService.MimeType.JAVASCRIPT);
}

我在这里不知所措。我是否需要以不同的方式将复选框值发送到我的脚本?

标签: javascriptjqueryformsgoogle-apps-script

解决方案


问题:

var params = e.parameter
  • e.parameter只返回第一个值

解决方案:

  • 改为使用e.parameters

参考:

片段:

var params = e.parameters;//modified

推荐阅读