2014-12-04 31 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

相關問題