1

我有多个具有多个选择限制的无线电组,一个是按名称属性,另一个是使用 jQuery。对于每个无线电组,我在更改时将选中的属性设置为 false,因此每个组只能检查一个无线电。

HTML

<div id="radio_group">
    <input type="radio" name="name" value="0"/>Name
    <input type="radio" name="address" value="0"/>Address
    <input type="radio" name="phone" value="0"/>Phone
</div>
<div id="radio_group">
    <input type="radio" name="name" value="1"/>Name
    <input type="radio" name="address" value="1"/>Address
    <input type="radio" name="phone" value="1"/>Phone
</div>

jQuery

$('#radio_group').each(function(){
    var mainElement = $(this);
    mainElement.children('input[type=radio]').on('change', function(){
        mainElement.children('input[type=radio]').not(this).prop('checked', false);
    });
});

这仅适用于第一组,有什么建议吗?

编辑:

使用类选择器而不是 id:

HTML

<div class="radio_group">
    <input type="radio" name="name" value="0"/>Name
    <input type="radio" name="address" value="0"/>Address
    <input type="radio" name="phone" value="0"/>Phone
</div>
<div class="radio_group">
    <input type="radio" name="name" value="1"/>Name
    <input type="radio" name="address" value="1"/>Address
    <input type="radio" name="phone" value="1"/>Phone
</div>

jQuery

$('.radio_group').each(function(){
    var mainElement = $(this);
    mainElement.children('input[type=radio]').on('change', function(){
        mainElement.children('input[type=radio]').not(this).prop('checked', false);
    });
});
4

4 回答 4

8

Id 's是唯一的。您可以对任何元素使用相同的类名,但不能对多个元素使用相同的 id

<div id="radio_group" class="className">
    <input type="radio" name="name" value="0"/>Name
    <input type="radio" name="address" value="0"/>Address
    <input type="radio" name="phone" value="0"/>Phone
</div>
<div id="radio_group" class="className">
    <input type="radio" name="name" value="1"/>Name
    <input type="radio" name="address" value="1"/>Address
    <input type="radio" name="phone" value="1"/>Phone
</div>


$('.className').each(function(){
    //write logic here
});
于 2013-05-23T13:56:21.043 回答
1

HTML:

<div classs="radio_group">
    <input type="radio" name="name" value="0"/>Name
    <input type="radio" name="address" value="0"/>Address
    <input type="radio" name="phone" value="0"/>Phone
</div>
<div class="radio_group">
    <input type="radio" name="name" value="1"/>Name
    <input type="radio" name="address" value="1"/>Address
    <input type="radio" name="phone" value="1"/>Phone
</div>

查询:

$('.radio_group').each(function(){
    var mainElement = $(this);
    mainElement.children('input[type=radio]').on('change', function(){
        mainElement.children('input[type=radio]').not(this).prop('checked', false);
    });
});

你不能id重复

于 2013-05-23T13:58:22.187 回答
0

ID是唯一标识符。所以当使用 jQuery#选择器时,它只返回 1 个对象。

改用类,它会起作用。

于 2013-05-23T13:57:19.993 回答
0

您不能多次拥有相同的 ID。它不是 HTML 投诉。您可以使用相同的类并使用. selector来选择所有的 div

于 2013-05-23T13:57:27.550 回答