gpt4 book ai didi

HTML 表单未运行 (withSuccessHandler) 函数

转载 作者:太空宇宙 更新时间:2023-11-04 15:47:52 31 4
gpt4 key购买 nike

我在 Google App Script(Sheets) 中有这个 HTML 表单,它要求用户输入日期值,然后提交该值。 HTML 表单运行。唯一的问题是 obj 不记录。我不明白这是为什么。

HTML:

<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<form id="myForm">

<input type="date" name="startDate" value="" id="demo" >
<input type="button" style="font-family: verdana;" value="Submit" onclick="getStartDate()">

</form>
<script>
function success(msg) {
alert(msg);
}

function getStartDate(){
var form = document.getElementById("myForm").elements;
var obj ={};
for(var i = 0 ; i < form.length ; i++){
var item = form.item(i);
obj[item.name] = item.value;
}
google.script.run
.withSuccessHandler(success)
.getStartDate(obj);

google.script.host.close();
};
</script>
</body>
</html>

Javascript:

function getStartDate(obj){
Logger.log(obj)
}

这应该输出对象,但它没有。

感谢您的帮助!

最佳答案

这个修改怎么样?

修改点:

  • google.script.run通过异步处理工作。所以在你的脚本中,getStartDate()success()由于 google.script.host.close() 而未运行.
  • getStartDate()在 GAS 端不返回值。所以alert(msg)显示undefined .

当以上几点反射(reflect)到你的脚本中时,它变成如下。

修改后的脚本:

HTML:

请修改Javascript如下。

function success(msg) {
alert(JSON.stringify(msg)); // Modified
}

function getStartDate(){
var form = document.getElementById("myForm").elements;
var obj ={};
for(var i = 0 ; i < form.length ; i++){
var item = form.item(i);
obj[item.name] = item.value;
}
google.script.run
.withSuccessHandler(function(e) { // Modified
success(e);
google.script.host.close();
})
.getStartDate(obj);
};
气体:
function getStartDate(obj){
Logger.log(obj)
return obj; // Modified
}

备注:

  • 如果你想把 key 给Submit , 请加name<input type="button" style="font-family: verdana;" value="Submit" onclick="getStartDate()"> .
  • 当然你也可以搬google.script.host.close()success() .

引用:

如果这不是您想要的,请告诉我。我想修改它。

关于HTML 表单未运行 (withSuccessHandler) 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53464989/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com