Google Apps 脚本 - 返回未定义
2022-07-11
1016
我想做什么:
- 从两个文本框(姓氏和名字)提交值
- 在 Code.gs 中处理这两个值(创建一个“Hello LastName, FirstName”格式的字符串)
- 返回处理后的值并将其显示到第三个文本框。
请注意,如果数据处理是在 html 中,我可以做到这一点,但我想在 Code.gs 中练习这样做,因为我将来想摆弄 Google 表格,我只是想一点一点地研究它。但是当我在 Code.gs 中传输处理时,返回的数据是“未定义”。非常感谢您的帮助。非常感谢!
当前代码:
Code.gs:
function doGet(e) {
return HtmlService
.createTemplateFromFile('Index').evaluate();
}
function getData(a,b){
var lastName = a;
var firstName = b;
var txtResult = "Hello " + lastName + ", " + firstName;
return txtResult;
}
Index.html:
<!DOCTYPE html>
<html>
<body>
<div>
<label>Enter Last Name</label>
<input type="text" id="txtLastName"/></br>
<label>Enter First Name</label>
<input type="text" id="txtFirstName"/></br>
<button id="btnProcess">Process</button></br>
<input type="text" id="txtResult"/>
</div>
</body>
<script>
document.getElementById("btnProcess").addEventListener("click", processData);
function processData() {
var lastName = document.getElementById("txtLastName").value
var firstName = document.getElementById("txtFirstName").value
document.getElementById("txtResult").value = google.script.run.getData(lastName,firstName);
}
</script>
</html>
1个回答
您缺少 withSuccessHandler 和 withFailureHandler (可选)。
<script>
document.getElementById("btnProcess").addEventListener("click", processData);
function processData() {
var lastName = document.getElementById("txtLastName").value
var firstName = document.getElementById("txtFirstName").value
google.script.run.withFailureHandler(errorFunction).withSuccessHandler(successFunction).getData(lastName,firstName);
}
function errorFunction(errorMsg) {
console.log("Something went wrong");
}
function successFunction(txtResult) {
document.getElementById("txtResult").value = txtResult;
}
</script>
Alfredo
2022-07-11