我可以禁用复选框但仍会触发其事件吗?

时间:2011-08-16 11:16:30

标签: javascript jquery html

在回答使用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>

链接上的onclick事件非常适合检查复选框,但我想禁用使用disabled =“diasabled”复选框并仍然可以使用它。这样,用户必须单击链接以选中要复选的复选框,而不是绕过此步骤并自行选中复选框。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

使用复选框的readonly属性!

答案 1 :(得分:1)

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


如果您需要两者选中该框并触发事件,请使用这两种技术。

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