2014-12-04 36 views
0

我已实现了以下的jQuery代码:Jquery:如果选中了单选按钮A,请执行此操作。如果B是检查,做到这一点

var $morning = $(".radiobox .bba, .radiobox .mba"); 
var $evening = $(".radiobox .mba"); 

$('.radiobox input.morneve').change(function(){ 
    if ($(".radiobox input[value='Morning']").is(':checked')) { 
     $($morning).attr("enabled"); 
    } 
    if (!$(".radiobox input[value='Morning']").is(':checked')) { 
     $($morning).attr("disabled"); 
    } 
    if ($(".radiobox input[value='Evening']").is(':checked')) { 
     $($evening).attr("enabled"); 
    } 
    if (!$(".radiobox input[value='Evening']").is(':checked')) { 
     $($evening).attr("disabled"); 
    } 
}); 

这是HTML:

<div class="radiobox"> 
    <input type="radio" name="morneve" class="morneve" value="Morning"> 
</div> 
<div class="radiobox"> 
    <input type="radio" name="morneve" class="morneve" value="Evening"> 
</div> 
<hr /> 
<div class="radiobox"> 
    <input type="radio" name="degreq" class="degreg bba" value="bba"> 
</div> 
<div class="radiobox"> 
    <input type="radio" name="degreq" class="degreg mba" value="mba"> 
</div> 

我想要做的是,如果输入早晨选中,那么应该启用$ morning。如果选择输入Evening,则应禁用$ morning,并启用$ evening。

这一切工作正常,除了重叠类.mba

当我检查早上,我看到那些早上启用。当我检查晚上时,只启用了.mba。但是如果我点击早上,.mba也会被禁用。

我一直在这方面花费数小时工作,我敢肯定我错过了什么......任何帮助将不胜感激。

谢谢!

+0

看看'.prop(prop,bool)'方法 – Jai 2014-12-04 12:20:01

+0

你的html在哪里? – Refilon 2014-12-04 12:20:14

+0

有一个参数,'.attr()'检索值,它不会设置它。 – Barmar 2014-12-04 12:20:25

回答

1

我得到这个固定的,使用下面的代码工作属性:

$('.radiobox input.morneve').change(function(){ 
    if ($(".radiobox input[value='Morning']").is(':checked')) { 
     $(".degreg").attr("disabled", true); 
     $($morning).removeAttr("disabled"); 
     $($evening).prop('checked', false); 
    } 
    if ($(".radiobox input[value='Evening']").is(':checked')) { 
     $(".degreg").attr("disabled", true); 
     $($evening).removeAttr("disabled"); 
     $($morning).prop('checked', false); 
    } 
}); 

它在做什么先禁用与所有输入class .degreg,然后从$ morning/$ evening这些中删除disabled属性。工作正常,以为我会在这里发布,所以它可以帮助某人。

感谢大家贡献!

1

没有名为enabled

// Basically this Morning and Evening are times for when classes are offered. MBA option is offered in both 
 
$(function() { 
 
    var $bba = $(".radiobox .bba"); 
 
    var $mba = $(".radiobox .mba"); 
 
    
 
    $('.radiobox input.morneve').click(function(){ 
 
    $($bba).prop("disabled",$(".radiobox input[value='Evening']").is(':checked')); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="radiobox"> 
 
    <label><input type="radio" name="morneve" class="morneve" value="Morning">Morning</label> 
 
</div> 
 
<div class="radiobox"> 
 
    <label><input type="radio" name="morneve" class="morneve" value="Evening">Evening</label> 
 
</div> 
 
<hr /> 
 
<div class="radiobox"> 
 
    <label><input type="radio" name="degreq" class="degreg bba" value="bba">BBA</label> 
 
</div> 
 
<div class="radiobox"> 
 
    <label><input type="radio" name="degreq" class="degreg mba" value="mba">MBA</label> 
 
</div>

+0

这是做同样的事情。工作正常,但如果我检查晚上,然后回到早晨,.mba被禁用。 – AliIshaq 2014-12-04 12:44:31

+0

所以你需要更好地解释为什么你有mba在 – mplungjan 2014-12-04 13:05:25

+0

基本上这个早晨和晚上是提供课程的时间。 MBA选项提供在两个...因此它在两个。 – AliIshaq 2014-12-05 06:41:00

相关问题