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

点击单选框No无法跳转下一题,如何跳过隐藏关联字段的表单验证?

要解决隐藏字段也参与校验的问题,核心调整是在校验逻辑里过滤掉处于不可见状态的输入项,仅校验用户可见的字段即可,修改代码如下:

1. 修改表单校验函数

你可以直接复用现有项目已经引入的jQuery的可见性判断能力,修改validateForm函数:

function validateForm() {
  // This function deals with validation of the form fields
  var x, y, i, valid = true;
  x = document.getElementsByClassName("tab");
  y = x[currentTab].getElementsByTagName("input");
  // A loop that checks every input field in the current tab:
  for (i = 0; i < y.length; i++) {
    // 新增逻辑:跳过隐藏状态的输入字段
    if ($(y[i]).is(':hidden')) {
      continue;
    }
    // 加trim方法避免全空格的无效输入被判定为合法
    if (y[i].value.trim() == "") {
      // add an "invalid" class to the field:
      y[i].className += " invalid";
      // and set the current valid status to false
      valid = false;
    }
  }
  // If the valid status is true, mark the step as finished and valid:
  if (valid) {
    document.getElementsByClassName("step")[currentTab].className += " finish";
  }
  return valid; // return the valid status
}

jQuery的:hidden选择器会自动判断元素本身或其父级是否为display: none隐藏状态,完全适配你现有的条件显示逻辑,无需额外调整其他代码。
如果不想依赖jQuery实现可见性判断,也可以用原生JS实现判断逻辑:

// 原生JS判断元素是否可见的工具函数
function isElementVisible(el) {
  return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);
}

// 对应修改校验函数里的判断逻辑即可
if (!isElementVisible(y[i])) {
  continue;
}

2. 可选优化:隐藏时清空字段残留值

建议补充切换隐藏时清空对应区域输入值的逻辑,避免提交时带上无效的历史输入,同时清除残留的错误样式:

$(document).ready(function() {
    $(".toggle-trigger").change(function(event) {
        $(".toggle-trigger").each(function(index, element) {
            var $element = $(element);
            var $toggleArea = $($element.data("toggle-area"));
            if($element.is(":checked")) {
                $toggleArea.show();
            } else {
                $toggleArea.hide();
                // 新增:隐藏时清空区域内输入值、移除错误样式
                $toggleArea.find('input').val('').removeClass('invalid');
            }
        });
    });
});

另外你现有HTML里No选项的data-toggle-area="#q1-no"没有对应的DOM元素,属于冗余属性,可直接删除不影响功能。

内容的提问来源于stack exchange,提问作者Edwin Guzman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:18:03