listbox不会将字符串传递给google脚本
listbox does not pass string to google script
当我从列表框中选择一个用户时,onChange()
事件会触发一个函数。它应该向函数传递一个字符串。然后,代码会找到用户的密码并返回进行比较。如果我对用户值进行硬编码,但当我从列表框中选择它时,以下代码可以正常工作。
function addClients(clients){
$('#customer').empty();
$('#customer').append('<option> ---- Choose a user ----</option>');
for (var i in clients) {
$('#customer').append('<option>'+clients[i]+'</option>');
$('#customer').trigger("chosen:updated");
}
}
getval函数:
function getval(sel){
var usrpass = google.script.run.getuserpass(sel.value);
alert(usrpass);
}
代码.gs中的函数如下
function getuserpass(userval){
var usrpass = "";
var doc = SpreadsheetApp.openById("spreadsheet id");
var sheet = doc.getActiveSheet();
var data = sheet.getRange(3, 3, sheet.getLastRow(),5).getValues();;
for(n=0;n<data.length;++n){
// iterate row by row and examine data in column A
if(data[n][0].toString().match(userval)==userval){ usrpass = data[n][4]};
}
return usrpass;
}
为什么返回值返回为未定义而不是密码。
如果我在函数中硬编码username并运行函数,那么返回值就是第五列中的值。
试着这样构建代码:
<script>
function onSuccess(returnVal) {
alert('Success! ' + returnVal);
};
function getval(sel){
var selectValue = sel.value;
console.log('selectValue: ' + selectValue);
google.script.run
.withSuccessHandler(onSuccess)
.getuserpass(sel.value);
};
</script>
作为调试测试,您可以遍历对象以查看其中的实际内容。
for (var propertyVal in sel) {
console.log('this property: ' + propertyVal);
console.log('this value: ' + sel[propertyVal]);
};
看看这个物体到底是什么。
相关文章:
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 将变量从google脚本传递到html对话框
- 在HTML JavaScript头部分运行Google脚本函数
- listbox不会将字符串传递给google脚本
- getSheetValues未返回数据Google脚本
- 仅通过最后一行运行Google脚本
- 将行从一张表移动到另一张表的Google脚本的实现
- 在 Google 脚本中,MailApp.sendEmails() 和 GmailApp.sendEmails() 无法
- Google 脚本:JSON.parse 无缘无故失败
- 在 Google 脚本中,按函数名称调用函数,并在字符串中给定其名称
- 创建 Google 脚本,以便在日历活动更新时对其进行修改
- 将文本替换为图片 Google 脚本
- 如何使用 Google 脚本更改工具提示中数字的格式
- 工作表的 Google 脚本 - 超出最长执行时间
- 如何使用 Google 脚本拆分 JavaScript 数组
- Google脚本,用于在单元格值低于特定值问题时发送电子邮件
- 在Google脚本中定义数组
- 如何在扩展spreadheet的Google脚本上的按钮事件处理程序中传递数据
- Google脚本发布JSON仅发送null
- 在Google脚本中尝试/捕获HTTP响应的最佳方式