使用jQuery同步“无线电组”

时间:2009-07-28 21:21:25

标签: jquery event-handling

让两个 - 在选项方面相同 - 无线电组A和B.我试图通过jQuery保证,如果在A中选择了某个选项,则在B中选择它的等效选项,并且另一种方式。

我目前的方法就是这个:

$(document).ready(function() {
    $(".groupA > input").click(function() {
        $(".tutored-radio > input ").click();
     });

    $(".groupB > input").click(function() {
        $(".online-radio > input").click();
    });
});

注意:每个单选按钮位于范围内。我没有直接将类分配给输入,因为在asp.net运行时生成的ListItem中很难做到这一点。

明显的问题是这是一个无限循环:它点击一个元素并触发点击操作,即再次点击它,依此类推......

您对此有何建议? 我确实有一些想法,但我没有提及它们因为我觉得它们太“hacky”了,但是如果证明有必要,请谈谈它们。

提前致谢!

2 个答案:

答案 0 :(得分:3)

而不是点击尝试设置属性标记。

$(document).ready(function() {
    $(".groupA > input").click(function() {
      $(".tutored-radio > input ").attr(”checked”, “checked”);
    });

    $(".groupB > input").click(function() {
      $(".online-radio > input").attr(”checked”, “checked”);
    });
});

答案 1 :(得分:1)

当你说等效选项时,你的意思是什么?我假设你的意思是value

以下内容将起作用

$(function() {

     $('span:has(input:radio)').click(function() {             
       var $this = $(this);
       var val = $('input:radio', $this).attr('checked','checked').val();
       var group = $this.hasClass('groupA') ? '.groupB' : '.groupA';       
       $(group + '> input:radio[value="' + val + '"]').attr('checked','checked');            
     });

});

这是Working Demo