【问题标题】:Validating multiple check boxes in a HTML form that can't be the same name [duplicate]验证 HTML 表单中不能同名的多个复选框[重复]
【发布时间】:2015-09-27 09:23:00
【问题描述】:

我有一个包含 2 组不同复选框的表单,它们都需要具有不同的名称。我需要的验证类型是用户必须从第 1 组中选择至少一个选项,从第 2 组中选择至少一个选项,然后表单才允许他们提交。我确信在 JQuery 或 JavaScript 中有一些方法可以做到这一点,但我在这两种方面都几乎没有经验,而且我在网上找到的大部分内容都要求 name 属性与我不能拥有的相同。

<form id="form1" action method="post">

  //Group 1 needs to have at least one option selected

  <input class="check1" type="checkbox" id="Dan_Murphys" name="Dan_Murphys"/>
  <input class="check1" type="checkbox" id="BWS" name="BWS" />
  <input class="check1" type="checkbox" id="First_Choice" name="First_Choice"/>

  //Group 2 needs to have at least one option selected

  <input class="check2" type="checkbox" id="Apple" name="Apple"/>
  <input class="check2" type="checkbox" id="Bread" name="Bread" />
  <input class="check2" type="checkbox" id="Water" name="Water"/>

  <input type="submit" name="SUBMIT" value="Submit">

</form>

【问题讨论】:

  • 请注意,重复的按名称分组,但是您可以轻松地将其修改为按类分组,并且逻辑是相同的。另外,不得不说,分组复选框不使用通用名称是很奇怪的。
  • 此表单托管在一个外部程序中,该程序通过定位复选框名称将结果拉入表格中。所以不幸的是,每个复选框都需要一个唯一的名称。

标签: javascript jquery html forms validation


【解决方案1】:

可以使用类名来定位组。您可以使用类选择器检查检查元素的长度:

if($('.check1:checked').length && $('.check2:checked').length){
    // at least one is selected in both group
}

【讨论】:

  • 很高兴知道我可以使用类来定位复选框组来解决唯一名称问题。然而,对于我的生活,我似乎根本无法让 JavaScript 工作。作为我第一次编写代码,我不知道我是否遗漏了一些基本的东西这是我的代码的粘贴箱,如果有人可以调整它以便它可以工作pastebin.com/GwCHdwHQ
  • 您需要将代码包装在文档就绪事件中。
  • 非常感谢您的帮助,我终于搞定了
猜你喜欢
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 2014-09-29
  • 2012-02-09
  • 1970-01-01
  • 2016-02-23
相关资源
最近更新 更多