Google apps script FormPanel使用ServerHandler验证提交

Google apps script FormPanel使用ServerHandler验证提交,google-apps-script,Google Apps Script,我想将ServerHandler绑定到submit按钮,以便在提交之前对表单进行验证。如果验证成功,则将执行表单的POST。如果验证失败(由于字段不完整或不正确),则POST将停止,ServerHandler可以指示不正确的字段。在Javascript中使用event.preventDefault()执行的操作,或者在提交的按钮处理程序中返回false var app = UIApp.getActiveApplication(); var form = app.createFormPanel()

我想将ServerHandler绑定到submit按钮,以便在提交之前对表单进行验证。如果验证成功,则将执行表单的POST。如果验证失败(由于字段不完整或不正确),则POST将停止,ServerHandler可以指示不正确的字段。在Javascript中使用event.preventDefault()执行的操作,或者在提交的按钮处理程序中返回false

var app = UIApp.getActiveApplication();
var form = app.createFormPanel();
var panel = app.createVerticalPanel();
// Add form elements to panel such as textboxes, radio buttons, list boxes etc.
...
...

var button = app.createSubmitButton("submit");
button.addClickHandler(app.createServerHandler("validate").addCallbackElement(panel));
panel.add(button);
form.add(panel);
app.add(form);


function validate(e) {
    // Do the validation of the form

    // QUESTION - How do we then disable or allow the POST?
}
因此,我目前正在做的一件事是有一个validate按钮(普通按钮),如果在serverhandler中完成的表单验证是好的,那么它将被更改为“submit”按钮。然后,用户必须再次单击该按钮以提交表单。我必须锁定所有元素,以防止它们在验证良好后更改任何字段。必须有一种更好的方法更类似于上面提到的Javascript路线,并在此处引用:


作为参考,如果您将validation ServerHandler绑定到submit按钮,它将始终执行POST

听起来好像客户机处理程序是正常的。@user1507720为什么不在(正常)按钮中执行所有操作,并控制电子表格中的内容。看看这个,它在(正常)按钮中执行所有验证。