Google HTML表单提交,尽管验证

Google HTML Form submits despite validation

本文关键字:验证 HTML 表单提交 Google      更新时间:2023-09-26

我有一个表单在工作,因为它写入电子表格。输入字段的状态为required,表单在提交时调用脚本。

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

形式代码

和我已经尝试了这里建议的解决方案:检查表单

上的必填字段

通过添加<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);
}