我正在尝试使用doGet()将带有Ajax的输入数组发送到Google脚本,问题是我无法在Google脚本中访问它。我的表单有多个输入字段,名称分别为first_name []和last_name []。我还发送了一个回调数据,在Google脚本中我可以访问e.parameters.callback,但无法访问e.parameters.first_name []和e.parameters.last_name []。当我删除[]并尝试访问e.parameters.first_name和e.parameters.last_name时,它返回未定义。您可以在下面看到e.parameters的结构。我想遍历每个first_name []和last_name []参数。
这是html表单
<form id="form1" role="form" class="form-inline">
<div id="myRepeatingFields" clas="col-md-12">
<div class="entry inline-form col-xs-12">
<input class="typeahead form-control" name="first_name[]" type="text" placeholder="first name" />
<input class="form-control" name="last_name[]" type="text" placeholder="last name" />
<button type="button" class="btn btn-success btn-lg btn-add">
<span class="fas fa-plus" aria-hidden="true"></span>
</button>
</div>
<div class="entry inline-form col-xs-12">
<input class="typeahead form-control" name="first_name[]" type="text" placeholder="first name" />
<input class="form-control" name="last_name[]" type="text" placeholder="last name" />
<button type="button" class="btn btn-success btn-lg btn-add">
<span class="fas fa-plus" aria-hidden="true"></span>
</button>
</div>
<div class="entry inline-form col-xs-12">
<input class="typeahead form-control" name="first_name[]" type="text" placeholder="first name" />
<input class="form-control" name="last_name[]" type="text" placeholder="last name" />
<button type="button" class="btn btn-success btn-lg btn-add">
<span class="fas fa-plus" aria-hidden="true"></span>
</button>
</div>
</div>
<div class="col-md-12">
<input id="submit" type="submit" value="submit" class="btn btn-primary" />
</div>
</form>
这是JavaScript
$("#form1").submit(function(e) {
e.preventDefault();
var first_name = $('input[name="first_name[]"]')
.map(function() {
return this.value;
})
.get();
var last_name = $('input[name="last_name[]"]')
.map(function() {
return this.value;
})
.get();
var url = "https://script.google.com/macros/s/AKfycbztMLT-IofWxDIxm_K2bDhjyZZR1vOHz8OSc4Dupwle/dev?action=insertFormula&callback=insertFormulaSuccess";
$.ajax({
crossDomain: true,
data: {
first_name: first_name,
last_name: last_name
},
url: url,
method: "GET",
dataType: "jsonp"
});
});
function insertFormulaSuccess(data) {
console.log(data);
}
这是代码。gs
function insertFormula(e) {
var result = {};
result.data = e;
Logger.log(e.parameters.first_name[]); // syntax error
Logger.log(e.parameters.last_name[]); // syntax error
return ContentService.createTextOutput(
e.parameter.callback + "(" + JSON.stringify(result) + ")"
).setMimeType(ContentService.MimeType.JAVASCRIPT);
}