You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

datalist选中值写入Google Sheets时显示为null的问题求助

问题原因与解决方案

核心问题出在你获取输入框值的时候用错了元素ID

看你的前端代码:

  • 你的<input>元素的ID是idPort1aListe
  • 但你在validerAd()函数里写的是document.getElementById("idPort1a").value

这就导致你实际拿到的是null(因为找不到ID为idPort1a的input元素),所以传给Google Apps Script的nouvAdresse函数的参数自然是null,最终表格里就被写入了null。

修正后的前端代码

只需要把获取元素的ID改成正确的idPort1aListe即可:

<script>
function validerAd() {
  // 这里把id改成input实际的id:idPort1aListe
  let idPort1a = document.getElementById("idPort1aListe").value;
  google.script.run.nouvAdresse(idPort1a);
}
</script>
<form>
<p8>
<label for="idPort1a" id="labelPort1a">Choisissez un switch :</label>
<!-- input的id是idPort1aListe,list属性对应datalist的id idPort1a,这部分是对的 -->
<input list="idPort1a" name="idPort1a" id="idPort1aListe">
<datalist id="idPort1a">
<br/>
<? for (var i = 0; i < mesSwitchs.length; i++) { ?>
<option value="<?= mesSwitchs[i][0] ?>" ><?= mesSwitchs[i][0] ?></option>
<? } ?>
</datalist>
</p8>
</form>

额外调试建议

你可以在函数里加个控制台日志,确认拿到的值是否正确,方便后续排查:

function validerAd() {
  let idPort1a = document.getElementById("idPort1aListe").value;
  console.log("选中的开关值:", idPort1a); // 打开浏览器控制台查看输出
  google.script.run.nouvAdresse(idPort1a);
}

你的Google Apps Script部分代码是没问题的,只要前端传对了值,就能正常写入表格。

内容的提问来源于stack exchange,提问作者Thibaud GARNIER

火山引擎 最新活动