【问题标题】:how to group radio buttons based on same class instead of same name如何根据相同的类而不是相同的名称对单选按钮进行分组
【发布时间】:2012-05-16 07:42:10
【问题描述】:

有没有办法对共享同一类的单选按钮集进行分组。

我希望能够检查每组中的单选按钮。

目前它只允许我检查一个单选按钮(我知道是因为同名)

也有 JQuery 方式吗?

例子:

设置 A

<input type="radio" name="item[]" class="a" value="1"><br>
<input type="radio" name="item[]" class="a" value="2"><br>
<input type="radio" name="item[]" class="a" value="3"><br>
<input type="radio" name="item[]" class="a" value="4"><br>

设置 B

<input type="radio" name="item[]" class="b" value="5"><br>
<input type="radio" name="item[]" class="b" value="6"><br>
<input type="radio" name="item[]" class="b" value="7"><br>
<input type="radio" name="item[]" class="b" value="8"><br>

【问题讨论】:

  • 为什么不能用不同的方式命名这两个集合?您只想选择其中的 1 个吗?
  • 感谢您的快速回答。那么单选按钮是使用 php 循环动态生成的。我不能以不同的方式命名它们。
  • 任何 JavaScript 解决方案都必须更改其名称才能实现这一点。如果后端的 PHP 应该保存值,它可能依赖于字段名称。因此请注意,仅客户端的更改可能会破坏服务器端的某些内容。
  • @gdoron 我试过了,但它也不适用于 body 标签。您在演示中使用了哪个 jquery 版本?事实上,它也破坏了其他 jquery 代码。
  • @smartpctech。它必须是 1.7+

标签: php jquery html forms radio-button


【解决方案1】:

好的,所以您尝试拥有多个数组条目,但使用 1 个数组。

由于 html 将它们解释为具有相同的名称,因此您必须自己将数字添加到数组键中。

所以这样的事情应该可以工作。

<input type="radio" name="item[0]" class="a" value="1" />
<input type="radio" name="item[0]" class="a" value="2" />
<input type="radio" name="item[0]" class="a" value="3" />
<input type="radio" name="item[0]" class="a" value="4" />
<input type="radio" name="item[0]" class="a" value="5" />

<input type="radio" name="item[1]" class="b" value="6" />
<input type="radio" name="item[1]" class="b" value="7" />
<input type="radio" name="item[1]" class="b" value="8" />
<input type="radio" name="item[1]" class="b" value="9" />
<input type="radio" name="item[1]" class="b" value="10" />

【讨论】:

  • 实际上我需要遍历 item[] 数组,例如
  • 感谢您的最佳回答,它为我节省了很多
  • 没问题。总是乐于提供帮助。
【解决方案2】:
$('#container').on('click', 'input[type="radio"]', function(){
    this.name = this.className;
});​

应该解决它。

Live DEMO

【讨论】:

  • 在演示中它可以工作,但是当我在本地机器上使用以下代码对其进行测试时,它不起作用。
  • @smartpctech。您的页面中是否有container id...?将其更改为body 并再次测试:$('body').on('click', 'input[type="radio"]', function(){ this.name = this.className; });​
  • 是的,我有
    并且我尝试使用 body 元素。不工作。您在演示站点中使用了哪个 jquery 版本。
【解决方案3】:

你能不能不给这些集合起不同的名字?

设置一个

< input type="radio" name="item1[]" class="a" value="1">
< input type="radio" name="item1[]" class="a" value="2">
< input type="radio" name="item1[]" class="a" value="3">
< input type="radio" name="item1[]" class="a" value="4">

设置 B

< input type="radio" name="item2[]" class="b" value="5">
< input type="radio" name="item2[]" class="b" value="6">
< input type="radio" name="item2[]" class="b" value="7">
< input type="radio" name="item2[]" class="b" value="8">

【讨论】:

  • 是否有 java 脚本方法可以根据同一类对单选按钮进行分组?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
  • 2021-11-28
  • 2015-10-11
  • 1970-01-01
相关资源
最近更新 更多