Javascript 是否可以禁用复选框,但仍会触发其事件?

Javascript 是否可以禁用复选框,但仍会触发其事件?,javascript,jquery,html,Javascript,Jquery,Html,修改了回答后的问题以使用onclick=“$('#co1').attr('checked',true);”这对disabled=“disabled”属性非常有效 但是,$aBoxes.change(function(){似乎不适用于onclick=“$('#co1').attr('checked',true);” 原始问题…… 我被告知“当元素被禁用时,事件也被禁用。” 我想禁用复选框,但单击链接会触发一个事件 我有一个jquery: var $aBoxes = $('#co1,#co2,#co

修改了回答后的问题以使用onclick=“$('#co1').attr('checked',true);”这对disabled=“disabled”属性非常有效

但是,$aBoxes.change(function(){似乎不适用于onclick=“$('#co1').attr('checked',true);”

原始问题……

我被告知“当元素被禁用时,事件也被禁用。”

我想禁用复选框,但单击链接会触发一个事件

我有一个jquery:

var $aBoxes = $('#co1,#co2,#co3');
$aBoxes.change(function(){
  // check if all are checked based on if the number of checkboxes total
  // is equal to the number of checkboxes checked
  if ($aBoxes.length == $aBoxes.filter(':checked').length){
      $('#a1').hide();
      $('#a2').show();
  }else{
    $('#a1').show();
    $('#a2').hide();
  }
});


<div id="a1">
a1 div
</div>

<div id="a2" style="display:none;">
a2 div
</div>

<div class="content">
<ul>
<li>
<input disabled="disabled" id="co1" name="co1" type="checkbox" <?php if($mychecklist->co1==1) echo 'checked' ?>/>
<a href="http://bbc.co.uk" target="_blank" onclick="$( '#co1' ).attr( 'checked', true );">Link 1</a>
</li>
<li>
<input disabled="disabled" id="co2" name="co2" type="checkbox" <?php if($mychecklist->co2==1) echo 'checked' ?>/>
<a href="http://bbc.co.uk" target="_blank" onClick="$( '#co2' ).attr( 'checked', true );">Link 2</a>
</li>
<li>
<input disabled="disabled" id="co3" name="co3" type="checkbox" <?php if($mychecklist->co3==1) echo 'checked' ?>/>
<a href="http://bbc.co.uk" onClick="$( '#co3' ).attr( 'checked', true );">Link 3</a>
</li>
</ul>
</div>
var$aBoxes=$('co1,#co2,#co3');
$aBoxes.change(函数(){
//根据复选框的总数检查是否全部选中
//等于选中的复选框数
if($aBoxes.length==$aBoxes.filter(':checked').length){
$('#a1').hide();
$('#a2').show();
}否则{
$('#a1').show();
$('#a2').hide();
}
});
a1分区
a2分区
  • />
  • />
  • />
链接上的onclick事件对于检查复选框非常有效,但我想使用disabled=“diasabled”禁用复选框并使其仍能工作。因此,用户必须单击链接以检查复选框,而不是绕过此步骤并自己检查复选框


提前感谢您的帮助。

使用复选框的
只读属性!

不清楚您是否要使用
链接选中已禁用的复选框,或者触发附加到复选框的单击事件。如果是前者,您可以使用
$('#tt2').attr('checked',!$('#tt2').attr('checked'))
切换复选框或
$('#tt2').attr('checked',true)
进行检查。如果是后者,则即使复选框被禁用,单击事件仍应运行


如果需要同时选中复选框和触发事件,只需使用这两种技术即可

<a href="http://bbc.co.uk" target="_blank" 
    onclick="$( '#co1' ).attr( 'checked', true ).trigger( 'change' );">


我以前尝试过这个方法,但它确实有效,但我还有另一个jquery函数,显示/隐藏div,而您的方法似乎不适用。我将编辑我的问题以显示完整的代码。现在有另一个问题,attr检查并触发更改非常有效,但提交表单时,它不想更新数据库。我这与禁用的复选框有关吗?我使用…$newentry->co1=(isset($\u POST['co1'))?1:0;$newentry->co2=(isset($\u POST['co2'))?1:0;$newentry->co3=(isset($\u POST['co3'))?1:0;…若要将3个复选框保存到数据库,禁用的表单字段未随POST数据一起提交。我认为最好不要使用禁用的复选框,而是使用隐藏的表单字段来传递数据。我需要禁用的复选框,因为我使用的是图像而不是复选框(使用此选项)。我是否可以为每个复选框设置一个隐藏字段,并使用onclick=“$('#co1').attr('checked',true.).trigger('change');”>要设置隐藏值?我需要向onclick属性添加什么?您是否尝试在复选框上使用
change
事件?谢谢您的回复,但这对我不起作用。我使用了@Juhana的答案