javascript - 尽管经过验证,Google HTML 表单仍会提交

标签 javascript html google-apps-script

我有一个表单,它写入电子表格的次数与它一样多。输入字段的状态为必填,表单在提交时调用脚本。

搜索后我发现验证需要在提交之前进行,但我正在努力使其工作。有什么建议吗?表单代码在这里:

Form Code

我已经尝试了这里建议的解决方案:Check required fields on Form

通过添加 <div class="ss-item-required">标签和代码

    function formcheck() {
  var fields = $(".ss-item-required")
        .find("select, textarea, input").serializeArray();

  $.each(fields, function(i, field) {
    if (!field.value)
      alert(field.name + ' is required');
   }); 
  console.log(fields);
}

但我在控制台上得到的只是类未定义错误。

最佳答案

所以你的代码有两个主要问题导致你的问题。首先,检查表单的验证功能,formCheck() , 实际上不在任何包含 <script> 的范围内标签 - 因此需要更改此代码才能将代码作为脚本执行。

其次,为了防止在验证失败时提交表单,您需要在允许执行 runGoogleScript() 之前实际执行验证结果检查。 :

<button type="submit" id="submitButton" class="blue" onclick="return formCheck();">SUBMIT ENTRY</button>

如果表单在 formCheck() 内验证然后你可以执行 runGoogleScript()像这样:

function formCheck() {

    var flag = false;

    var fields = $(".ss-item-required").find("select, textarea, input").serializeArray();

    $.each(fields, function(i,field) {
        if(!field.value) {
            alert(field.name +' is required');
            flag = true; //Flag that the form is invalid
        }
    });

    //If form is valid, 'flag' will be false
    if (!flag) {
        runGoogleScript(); //Execute script
    }

    return false; //If the validation fails

    console.log(fields);

}

希望这对您有所帮助。

关于javascript - 尽管经过验证,Google HTML 表单仍会提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32457832/

相关文章:

html - 有 .row 替换吗?

google-apps-script - 谷歌应用脚​​本: update cell to file name

google-apps-script - 获取文档中的所有链接

javascript - 使用 JSPDF 添加图像

javascript - 我的外部 css 文件不会加载到 Electron 应用程序中

javascript - AngularJS:自定义指令 HTML 属性 'not defined'

javascript - 更改 ExtJS Grid/DatePicker 中使用的短/长月份名称

javascript - 在新页面加载之前页面淡出(但跳回 View )+ Safari 后退按钮问题

javascript - 在 HTML 页面中使用 JavaScript 的最佳方式

javascript - Google Apps 脚本 HTML 服务 : Scroll to top of window