单选按钮可动态创建图像

时间:2011-08-09 19:02:05

标签: javascript jquery radio-button

我想通过单击动态创建的图像来更改已检查的无线电btn。这是PHP生成我的图像:

<?php if($subject_list){
      foreach ($subject_list as $item):?>
            <input type="radio" name="subjectagendaactivity" value="male" />
            <img src="/static/images/school/students/subjects/island/island_<?php echo $item['id'];?>_agenda.png"/>
      <?php endforeach;}?>

所以我的图像是这样生成的,这是我在JQuery中创建的代码,可以更改.cheked:

$(this).click(function () {
                $('input:radio[name=subjectagendaactivity]')[0].checked = true;
            });

我需要将[0]更改为$(this)或类似的内容,以便在点击右图时检查我的收音机btn。

5 个答案:

答案 0 :(得分:1)

这样的事情对你有用吗?:http://jsfiddle.net/FsshJ/唯一的缺点是它需要imginput都有ID。但是,如果您需要/需要,可以将其更改为其他内容。

答案 1 :(得分:0)

试试这个:

$(this).click(function () {
                $('input:radio[name=subjectagendaactivity]').attr("checked", true);
            });

答案 2 :(得分:0)

$(this).click(checkIt($(this)));



// Elsewhere
function checkIt(rBtn) {
    rBtn.checked = true;
}

答案 3 :(得分:0)

试试这个:

$('input:radio[name=subjectagendaactivity]').each(function(index) {
if(index == 0)
{
     $(this).attr("checked","checked");
     return;
}
});

答案 4 :(得分:0)

假设您要检查的复选框始终是之前的元素您点击的图片:

$('img').click(function () {
    var $check = $(this).prev(':checkbox');

    if($check.is(':checked'){  // Already checked? Uncheck it!
        $check.removeAttr('checked');
    }
    else{
        $check.attr('checked','checked');
    }
});

看看jQuery's traversal methods;你应该能够找到一个允许你按照惯例抓住你的复选框。