Javascript JS变量未正确传递
我已经研究这个代码有一段时间了。我有一个HTML、JS和Code.JS页面 更改HTML表单上下拉列表中的值时,下拉列表中的项将传递给Code.js以返回结果,但是,我的结果始终为NULL-arr是结果 另一个问题是,我可以在脚本日志中看到getRowData()被执行了两次,不知道为什么,但这可能会覆盖我们的数组 HTML JSJavascript JS变量未正确传递,javascript,html,jquery,google-apps-script,Javascript,Html,Jquery,Google Apps Script,我已经研究这个代码有一段时间了。我有一个HTML、JS和Code.JS页面 更改HTML表单上下拉列表中的值时,下拉列表中的项将传递给Code.js以返回结果,但是,我的结果始终为NULL-arr是结果 另一个问题是,我可以在脚本日志中看到getRowData()被执行了两次,不知道为什么,但这可能会覆盖我们的数组 HTML JS //$('#searchDropdown').one('change', function(){ //$("#searchDropdown").c
//$('#searchDropdown').one('change', function(){
//$("#searchDropdown").change(function(){
//$('#searchDropdown').on('keyup propertychange change', function(){
//$('#searchDropdown').on('input', function(){
//$('#searchDropdown').one('submit', function(){
$('#searchDropdown').one('change', function(){
var selatr = $('#input1').val();
google.script.run.withSuccessHandler(poperr).getRowData(selatr);
});
function poperr(arr){
alert(arr +" ! ");
}
代码.GS
function getRowData(selatr){
//Vlookup a GoogleSheet and return the resulting row
sheet_data.getRange(2,16).setValue(selatr); //set for vlookup
var x = sheet_data.getRange(3,16).getValues();
var arr= [];
arr.push({
id : selatr
name : sheet_data.getRange(x,2).getValues()
})
return arr;
}
这可能是因为您的代码中有多个事件处理程序,并且您的
getRowData
函数被调用了两次
尝试e.停止即时复制()代码>这将停止执行其余的事件处理程序
$('#searchDropdown').one('change', function(e){
e.stopImmediatePropagation();
var selatr = $('#input1').val();
google.script.run.withSuccessHandler(poperr).getRowData(selatr);
});
你确定你的vlookup成功返回了一些数据,并且你的arr在getRowData函数中有一些值吗?谢谢你的建议!我在getRowData()的末尾添加了一个Logger.Log()来查看arr。我可以看到arr是正确的