PDF表单Javascript验证:如何实现7个复选框至少勾选1项的校验
代码修改方案
你只需要做两处调整即可实现需求:首先定义7个复选框的字段名集合,再新增对应校验逻辑,原有校验规则完全保留不影响正常使用。修改后的完整代码如下:
var emptyFields = []; // 请将数组内的示例名称替换为你实际使用的7个复选框的字段名 var requiredCheckboxes = ["chk1", "chk2", "chk3", "chk4", "chk5", "chk6", "chk7"]; var hasChecked = false; for (var i = 0; i < this.numFields; i++) { var f = this.getField(this.getNthFieldName(i)); // 统计指定复选框的选中状态 if (requiredCheckboxes.indexOf(f.name) > -1 && f.value !== "Off") { hasChecked = true; } // 原有必填字段校验逻辑 if (f.type != "button" && f.required) { if ((f.type == "text" && f.value == "") || (f.type == "checkbox" && f.value == "Off") || (f.type == "signature" && f.value == "")) { emptyFields.push(f.name); } } } // 复选框组至少选1项校验 if (!hasChecked) { emptyFields.push("指定复选框组"); } if (emptyFields.length > 0) { app.alert("错误!请填写所有红色高亮字段,且至少勾选1项指定复选框"); } else { print(); }
补充说明
- 如果7个复选框是同组同名字段(仅导出值不同),只需将
requiredCheckboxes数组中仅保留1个公共字段名即可 - 弹窗提示文案可以根据你的业务需求自行调整
内容的提问来源于stack exchange,提问作者Syed RM
相关产品推荐
相关产品推荐

