Jquery:如果选中了单选按钮A,请执行此操作。如果检查B,请执行此操作

时间:2014-12-04 12:17:35

标签: javascript jquery if-statement radio-button

我实现了以下jQuery代码:

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,则应启用$ morning。如果选择输入Evening,则应禁用$ morning并启用$ evening。

一切正常,除了重叠的类.mba

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

我花了好几个小时研究这个,我确定我错过了一些东西......非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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);
    }
});

它正在做的是首先使用类.degreg禁用所有输入,然后从$ morning / $ evening中删除disabled属性。工作得很好,我想我会把它贴在这里,这样可以帮助别人。

感谢所有贡献的人!