通过两个Apps Script库实现表单验证时遇Uncaught ReferenceError错误
问题解决步骤
1. 修正前端按钮的点击绑定
把form.html里登录按钮的onclick="check()"改成调用前端已定义的validate():
<input type="button" onclick="validate()" value="登录">
2. 在前端validate()中调用后端服务函数
在form.html的<script>标签里,完善validate()函数,用google.script.run调用后端的check():
function validate() { // 可选:先执行前端本地验证逻辑 // 调用后端的check函数 google.script.run .withSuccessHandler(function(response) { // 处理后端返回的成功结果 }) .withFailureHandler(function(error) { // 处理调用失败情况 console.error(error); }) .check(); }
3. 处理跨库函数调用的代理(针对双库场景)
因为Web应用部署的是第二个库,前端google.script.run默认调用的是第二个库的函数,所以需要在第二个库中添加代理函数,把请求转发到第一个库:
// 第二个库中的代理函数 function check() { // 调用第一个库的check函数 return first.check(); }
同时确保第一个库的check()函数是公开可访问的——需在库的设置中将其设为可见,且函数为顶级函数(未嵌套在其他函数内部)。
4. 单库场景的基础排查
如果单库也报错,检查以下几点:
- 前端的
validate()函数是否正确定义在form.html的<script>标签中,无语法错误 - 后端的
check()函数是否为顶级函数,未被嵌套 - HTML加载时,
<script>标签的逻辑未被页面渲染阻塞
内容的提问来源于stack exchange,提问作者hub2sell
相关产品推荐
相关产品推荐

