<label for="checkbox2" id="label1">
click <input type="checkbox" id="checkbox1">
</label>
<input type="checkbox" disabled="true" id="checkbox2"/>
$(document).ready(function(){
$('#checkbox1').click(function(event) {
$('#checkbox2').prop('disabled', !this.checked);
});
});
页面中有两个复选框。 (#checkbox1,#checkbox2)
#checkbox1在label标签中,#checkbox2不在
我想根据#checkbox1启用/禁用#checkbox2。
当我勾选#checkbox1时,#checkbox2已正确启用 但是只在Firefox中同时检查#checkbox2。 (IE和Chrome不是)
我认为问题与事件的排序有关。但是,我不确切知道。
编辑:
答案 0 :(得分:2)
删除for
属性,并将事件监听器从click
更改为change
。
答案 1 :(得分:0)
必须将label
元素for
属性附加到checkbox1
元素,但您可以在checkbox1的更改处理程序中更改checkbox2的已检查状态
<label for="checkbox1" id="label1">click
<input type="checkbox" id="checkbox1">
</label>
<input type="checkbox" disabled="true" id="checkbox2" />
然后
$(document).ready(function () {
$('#checkbox1').change(function (event) {
$('#checkbox2').prop({
disabled: !this.checked,
checked: this.checked
});
});
});
演示:Fiddle