当我从列表框中选择用户时,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);
}
code.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;
}
为什么返回值以未定义而不是密码的形式返回。
如果我在函数中硬编码用户名并运行函数,那么返回值就是第五列中的值。
答案 0 :(得分:0)
尝试构建如下代码:
<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]);
};
看看对象中到底是什么。