jquery显示多个复选框的隐藏div

jquery显示多个复选框的隐藏div,jquery,Jquery,我有一个脚本,当我单击它显示/隐藏2个不同div的所有3个复选框时,它可以工作 <input id="chk1" type="checkbox" /> <input id="chk2" type="checkbox" /> <input id="chk3" type="checkbox" /> var chkBoxes = $('#chk1,#chk2,#chk3'); chkBoxes .change(function(){ i

我有一个脚本,当我单击它显示/隐藏2个不同div的所有3个复选框时,它可以工作

<input id="chk1" type="checkbox" />
<input id="chk2" type="checkbox" />
<input id="chk3" type="checkbox" />

var chkBoxes = $('#chk1,#chk2,#chk3');

      chkBoxes .change(function(){

      if (chkBoxes.filter(':checked').length == chkBoxes.length){
        $('#checked2').show();
        $('#checked1').hide();
      }else{
        $('#checked2').hide();
        $('#checked1').show();
      }
    });

var chkBoxes=$(“#chk1,#chk2,#chk3”);
chkBoxes.change(函数(){
if(chkBoxes.filter(':checked').length==chkBoxes.length){
$('#checked2').show();
$('#checked1').hide();
}否则{
$('#checked2').hide();
$('#checked1').show();
}
});
是否有人知道如何修改此选项,以便我可以按如下方式禁用复选框:

<input id="chk1" type="checkbox" disabled="disabled" />
<input id="chk2" type="checkbox" disabled="disabled" />
<input id="chk3" type="checkbox" disabled="disabled" />

每个复选框都有一个链接,用于执行更改功能并勾选复选框。 我正在使用:

<a href="" onClick="document.checklist.chk1.value=1;">Link</a>
<a href="" onClick="document.checklist.chk2.value=1;">Link</a>
<a href="" onClick="document.checklist.chk3.value=1;">Link</a>

上面的内容似乎可以很好地检查复选框,但它不会调用jquerychange函数


希望这有意义,提前谢谢。

是的。您需要在复选框上触发选中的事件。。我来看看是否能够生成一个JSFIDLE示例


您可以使用
$(选择器).prop('disabled',true)执行禁用的操作

对于单击链接,您可以为链接指定一个类,该类引用复选框id:

$('a').click(function(){
  $('#'+this.className).prop('checked',true);
  return false;
});
首先,我将在onClick方法的末尾添加“returnfalse”

然后,我将通过jQuery调用值更改,而不是使用纯javascript。 如果不起作用,则尝试手动触发事件

$("#chk1").trigger("change"); 
虽然如果您使用链接来选中复选框,为什么还要在复选框上添加更改事件呢?只需将其放在links onClick方法上

差不多

<a href=#" onClick="return checkAndToggleDiv($('chk1'));">Link</a>

checkAndToggleDiv(chk){
   chk.prop('checked',true);
   //do anything else you need, you can even use chk.prop('checked') 
   //to get the current value of checked
}

checkAndToggleDiv(chk){
chk.道具(“已检查”,正确);
//做任何你需要的事情,你甚至可以使用chk.prop('checked')
//获取选中的当前值
}

您可以这样做来处理您的


:感谢回复标记,我使用了onclick=“$('#chk1')。触发器('click'));由netbrain建议。但是您的JSFIDLE示例效果很好。我现在面临的唯一问题是禁用复选框,其他一切都可以。当复选框被禁用时,它会停止检查它的onclick触发器。我尝试了下面Pehmolelu的答案,但这也解决了问题same@Matthewbr当元素被禁用时,事件也被禁用。@Pehmolelu那么没有办法解决这个问题吗?当我禁用checbox时,它会停止链接的检查触发器
<a href=#" onClick="return checkAndToggleDiv($('chk1'));">Link</a>

checkAndToggleDiv(chk){
   chk.prop('checked',true);
   //do anything else you need, you can even use chk.prop('checked') 
   //to get the current value of checked
}
$("a[rel]").click(function(e) {
    e.preventDefault();
    var chk = $("#" + $(this).attr("rel"))[0];
    chk.checked = !chk.checked;
    chkBoxes.change();
});
<a href="" rel="chk1">Link 1</a>
<a href="" rel="chk2">Link 2</a>
<a href="" rel="chk3">Link 3</a>