javascript - 将数据从下拉 => 传递到 javascript 函数(Google App 脚本)
问题描述
希望我已经包含了足够多的代码,而不必全部发布...
我有一个调用 displayDropdown()- 的主函数,它调用一个 HTMLService 并显示一个带有下拉列表和文本框的模式:
。
这是存储数据的(压缩的)javascript代码:
<html>
<input type="submit" value="Submit" class="action" onclick="sendData()" />
</html>
<script>
function sendData() {
var values = {};
values.textJob = document.getElementById("input").value;
values.selectedJob = document.getElementById("dropJob").value;
google.script.run.withSuccessHandler(closeIt).grabData(values);
};
function closeIt(){
google.script.host.close()
};
</script>
然后是我的 .gs 文件中的 grabData() 函数:
function grabData(values) {
if(values.textJob=="")
//return values.selectedJob;
Logger.log(values.selectedJob);
else
//return values.textJob;
Logger.log(values.textJob);
}
如果我将退货注释掉并尝试记录数据,我会记录预期的数据。但是,如果我将其反转并返回,则在调用 displayDropdown() 后返回主函数,并将变量设置为等于 grabData 函数:
displayDropdown();
var stuff = grabData();
Logger.log(stuff);
我收到一条错误消息:
为什么我无法访问数据?
解决方案
这是我通常将数据从 HTML 表单发送到 GS 的方法:
HTML
<form method="POST" action="#" id="formID">
<button class="btn" type="submit">Send</button>
</form>
JS
document.querySelector("#formID").addEventListener("submit", function(e) {
var test = google.script.run.withSuccessHandler('client side function').processForm(this);
});
我通常将“this”作为参数传递,并在 GS 上处理信息。
编辑:
GS
function processForm(values){
Logger.log(values);
Logger.log(typeof values);
}
截图:
1- 网络应用
2- 服务器日志(函数 processForm)
推荐阅读
- java - 使用 Intent 获取默认值的原因是什么?
- node.js - 删除 http://localhost:3001/formations/undefined 0 ()
- iis - 如何在 IIS 中为 ColdFusion 配置网站
- apache - Apache HTTP 服务器 - SOAP 正文元素的路由请求
- python - Python 自定义 JSON 编码器不处理 numpy NaN 或 Infinite 值
- android - 如何在 ionic 3 for android 平台上实现连续/实时语音到文本
- python - 使用 MySQL 数据库部署 Python Flask 应用程序
- javascript - 获取 Cloudinary 上传过程数据
- svn - 在保留文件历史记录的同时移动 svn 文件夹
- shell - 捕获在我的 shell 中启动正在运行的进程的命令