2014-02-25 44 views
3

我的HTML在其标签中有单选按钮。当收音机被选择时,我需要为这个标签添加一个类,当它不是时,删除它。选择时将课程添加到收音机的标签,并在课程不在时删除课程?

下面我的代码添加了收音机时的类,但未选中时未删除。

http://jsfiddle.net/UJM6G/

<div class="form-input radios"> <div class="form-radios form-element-type-radios"><div class="form-form-element-wrapper"><div class="form-item form-item-radio"> 
<div class="form-input radio"> <label class="option" for="edit-vehicle-owner-1"><input type="radio" name="vehicle_owner" value="1" class="form-radio form-element-type-radios"> Yes</label> 
</div><div class="form-error"></div></div> 
</div><div class="form-form-element-wrapper"><div class="form-item form-item-radio"> 
<div class="form-input radio"> <label class="option" for="edit-vehicle-owner-0"><input type="radio" value="0" class="form-radio form-element-type-radios"> No</label> 
</div><div class="form-error"></div></div> 
</div></div> 
</div> 

    $('.form-element-type-radios').click(function(){ 
    if ($('input.form-radio').is(':checked')) { 
     $(this).parent('label').addClass('checked'); 
    } 
    else { 
     $(this).parent('label').removeClass('checked'); 
    } 
    }); 

回答

3

您应该使用.change()事件

$('input.form-radio').change(function() { 
    if ($(this).prop('checked')) { 
     $('input.form-radio').parent('label').removeClass('checked') 
     $(this).parent('label').addClass('checked'); 
    } 
}).change(); 

DEMO

+0

该解决方案的问题是,如果在页面加载时已经选择了收音机,则不会添加该类。 – Evans

+0

@jdln,我已经更新了答案,希望这可以解决您的问题。查看更新的演示。刚刚将'checked'属性添加到'Yes'收音机 – Satpal

0

尝试使用各种功能的

$('.form-element-type-radios').click(function(){ 
    $('input.form-radio').each(function(){ 
     $(this).is(':checked') ? $(this).parent('label').addClass('checked') : $(this).parent('label').removeClass('checked'); 
     }) 
    }); 
这样做的所有按钮

JSFIDDLE DEMO