数据列表选定值在工作表中"null"



我有一个数据问题:我的数据列表中有太多的值,无法使用简单的选择。我把我的html改为使用数据表。问题是所选值为"null";当我想把它放在床单上的时候。这些值像:"PDCTLEA1-N00C06"在"mesSwitchs"列表。

<script>              
function validerAd()  
{

let idPort1a = document.getElementById("idPort1a").value; 

google.script.run.nouvAdresse(idPort1a);
}
<form>
<p8>
<label for="idPort1a" id="labelPort1a">Choisissez un switch :</label>
<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>
function nouvAdresse(idPort1a)
{
AdressesIP.getRange(2,2).setValue(idPort1a);
}

在工作表中,将设置"null"而不是选中的值。你知道为什么吗?

Issue:

即使你在实际的代码中没有拼写错误,看起来你正在从<datalist>检索值;数据主义元素没有value属性,所以这将始终保持未定义:

let idPort1a = document.getElementById("idPort1a").value; 

解决方案:

如果您想获得选中的选项,您应该从相应的<input>元素中检索值:

function validerAd() {
let idPort1aListe = document.getElementById("idPort1aListe").value; 
google.script.run.nouvAdresse(idPort1aListe);
}
其他问题:

正如其他人所说,您提供的代码中有一个错别字:

function nouvAdresse(idPort1a) {
AdressesIP.getRange(2,2).setValue(idPort1); // idPort1 should match the function argument
}

我唯一能想到的就是打错了。你到处都在用idPort1a

但是你试图在你的函数中粘贴idPort1(没有a)。

可能你的函数应该是这样的:

function nouvAdresse(idPort1a)
{
AdressesIP.getRange(2,2).setValue(idPort1a); // <-- here
}

只是猜测。

最新更新