无法使用jquery切换属性复选框属性

时间:2015-05-08 13:02:08

标签: jquery html

我想根据其他复选框选中的属性切换复选框组的禁用属性 复选框组的Html代码是:

<div class="checkbox-group">
            <div class="col1">

              <p>
<input type="checkbox" name="backpack" id="backpack" tabindex="170" />
              <label for="backpack">Backpack Cal</label>
</p>
              <p>
<input type="checkbox" name="calm" id="calm" tabindex="180" />
              <label for="calm">California Calm</label>
</p>
              <p>
<input type="checkbox" name="hotsprings" id="hotsprings" tabindex="190" />
              <label for="hotsprings">California Hotsprings</label>
</p>        
            </div>
            <div class="col2">
              <p>
<input type="checkbox" name="cycle" id="cycle" tabindex="210" />
              <label for="cycle">Cycle California</label>
</p>
             <p>
 <input type="checkbox" name="desert" id="desert" tabindex="220" />
              <label for="desert">From Desert to Sea</label>
</p>
             <p>
 <input type="checkbox" name="kids" id="kids" tabindex="230" />
              <label for="kids">Kids California</label>
</p>
            </div>
            <div class="col3">
              <p>
<input type="checkbox" name="nature" id="nature" tabindex="240" />
              <label for="nature">Nature Watch</label>
</p>
              <p>
<input type="checkbox" name="snowboard" id="snowboard" tabindex="250" />
              <label for="snowboard">Snowboard Cali</label>
</p>
             <p>
 <input type="checkbox" name="taste" id="taste" tabindex="260" />
              <label for="taste">Taste of California</label>
</p>
            </div>

            </div>

切换按钮的Html代码是

<div id="group-toggle">
                <input type="checkbox" name="bike_check" id="bike_check" /> <label for="bike_check">I own, or will otherwise provide, my own bicycle</label>
            </div>

jquery代码是

var $checkbox=  $('.checkbox-group').find('input[type=checkbox]');
$checkbox.prop('disabled',true);
$('#bike_check').click(function() {
var $toggle=$(this);
});

$checkbox.prop('disabled',!$toggle.prop('checked'));

我能够使用if-else语句但不是这样做,我做错了什么

1 个答案:

答案 0 :(得分:1)

您只需要更改一行

<强>要么

放置

  

$ checkbox.prop(! '禁用',$ toggle.prop( '检查'));

单击处理程序中的

因为您无法访问作用域外的$toggle变量,所以您必须在单击处理程序中执行操作

$('#bike_check').click(function() {
    var $toggle=$(this);
    $checkbox.prop('disabled',!$toggle.prop('checked'));
});

在点击处理程序之外声明$toggle变量,并在click()

中初始化它

Example