You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:09:03