制作名称不同的单选按钮,就像它们在一个组中一样

时间:2014-02-18 00:30:09

标签: javascript jquery html

我有一个动态生成的表单 - 其中有多个具有自己元素的字段集。其中有一个单选按钮。这是一个简化的片段:

    <form name="ePIC" method="post" action="test.php">
        <fieldset>
            <input type="radio" name="pic[1]" />
        </fieldset>
        <fieldset>
            <input type="radio" name="pic[2]" />
        </fieldset>
        <input type="submit" name="submit" value="test" />
    </form>

基本上,在字段集中是图片,单选按钮用于选择相册的封面图片。

除了以下事实之外,一切都很有效,因为单选按钮的名称不同,它们不会作为一个组 - 这意味着可以同时选择多个单选按钮。

有谁能告诉我如何使单选按钮作为一个组,可能使用javascript / jQuery?

我开始尝试按类管理按钮 - 但是在一路上就如何影响所有其他单选按钮一样迷失了。

4 个答案:

答案 0 :(得分:1)

你最好使用相同的名字,但如果你不能:

$('input[type="radio"]').change(function(){
    // Deselect all
    $('input[type="radio"]').attr('checked', false);
    // Select current
    $(this).attr('checked', true);
});

答案 1 :(得分:1)

此jQuery代码将删除所有单选按钮名称的[n]部分,因此具有相同名称前缀的所有按钮将组合在一起。

$(":radio").attr('name', function(i, name) {
    $(this).data('orig-name', name);
    return name.replace(/\[.*\]/, '');
});

使用此submit处理程序在提交表单时将原始名称与索引一起放回。

$("form").submit(function() {
    $(this).find(':radio').attr('name', function() {
        return $(this).data('orig-name');
    });
});

答案 2 :(得分:0)

如果对两个单选按钮使用相同的name,则只允许选择一个。看看下面的代码。

 <form name="ePIC" method="post" action="test.php">
        <fieldset>
            <input type="radio" name="pic" value="1" />
        </fieldset>
        <fieldset>
            <input type="radio" name="pic" value="2" />
        </fieldset>
        <input type="submit" name="submit" value="test" />
 </form>

答案 3 :(得分:0)

您需要使用相同的名称创建它们,但您可以使用value属性为它们分配不同的值。