我有一个表单在写入电子表格时工作。输入字段的状态为required,表单在提交时调用脚本。
搜索后我发现验证需要在提交之前进行,但我正在努力使它工作。有什么建议?表单代码在这里:
我尝试过这里建议的解决方案: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);
}
但我在控制台上得到的只是类未定义的错误。
答案 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);
}
希望这有帮助。