点击button1执行myfunction期间禁用button2功能实现异常求助
问题根因
google.script.run属于异步执行接口,触发服务端函数调用后不会等待执行完成,就会立刻运行后续代码- 原有代码存在逻辑写反问题:误将button1设置为禁用,button2直接设置为启用,和需求完全不符
- 原有代码存在语法错误,多写了多余的闭合括号
修正后代码
$(document).ready(function(){ $("#button1").click(function(){ // 点击button1后立刻禁用button2,避免用户误触发 $('#button2').prop("disabled", true); // 绑定执行回调,等待myfunction执行结束后再修改按钮状态 google.script.run // 函数执行成功的回调 .withSuccessHandler(() => { $('#button2').prop("disabled", false); }) // 函数执行失败的回调,避免报错后button2一直被锁定 .withFailureHandler((err) => { console.error('函数执行失败:', err); $('#button2').prop("disabled", false); }) .myfunction(); }); });
补充说明
推荐使用jQuery的prop()方法修改disabled这类布尔属性,比attr()兼容性更好,状态更新更稳定;失败回调可以根据业务需求补充错误提示逻辑,比如给用户弹出报错提醒。
内容的提问来源于stack exchange,提问作者Le tone
相关产品推荐
相关产品推荐

