尽管已经过验证,但我们仍会提交Google HTML表单

时间:2015-09-08 12:26:12

标签: javascript html google-apps-script

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

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

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);
}

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

1 个答案:

答案 0 :(得分:1)

因此,您的代码有两个导致问题的主要问题。首先,用于检查表单的验证函数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);

}

希望这有帮助。