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

То, что я пытаюсь сделать это, если вход Утро проверяется, то $ утром должно быть включено. Если выбран входной вечер, то $ утром следует отключить, а $ вечер должен быть включен.

Это все работает отлично, для перекрытия класса .mba

Когда я проверяю утро, я вижу утром тот включен, за исключением. Когда я проверяю Evening, включен только .mba. Но если я снова вернусь к утру, .mba также отключится.

Я проводил часы, работая над этим, я уверен, что мне что-то не хватает ... Любая помощь будет принята с благодарностью.

Спасибо!

+0

Посмотрите на метод '.prop (prop, bool)' – Jai

+0

где ваш html? – Refilon

+0

С помощью одного аргумента '.attr()' получает значение, оно не устанавливает его. – Barmar

ответ

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, а затем удалить отключенный атрибут из $ утренних/вечерних. Хорошо работает, думал, что я разместил его здесь, чтобы кто-то помог.

Спасибо всем, кто внес свой вклад!

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

+0

Итак, вам нужно объяснить, почему у вас есть mba в обоих – mplungjan

+0

В основном это Утро и Вечер - это время, когда предлагаются классы. Вариант MBA предлагается как в обоих ... следовательно, он в обоих. – AliIshaq

Смежные вопросы