Javascript 如何设置单个复选框以切换/取消切换其他复选框?

Javascript 如何设置单个复选框以切换/取消切换其他复选框?,javascript,jquery,checkbox,checkboxlist,Javascript,Jquery,Checkbox,Checkboxlist,有一个包含两个div的对话框: 1一个标记,其中包含一个标记为“全选”的复选框 <div class="div01"> <div class="notRequiredPrefix"></div> <input type="checkbox" name="root.module.emailCheckBox" id="sel

有一个包含两个div的对话框:

1一个标记,其中包含一个标记为“全选”的复选框

<div class="div01">
    <div class="notRequiredPrefix"></div>
        <input type="checkbox" 
                           name="root.module.emailCheckBox" 
                           id="selectAllEmailsId" 
                           onclick="selectAllEmails(this)"/>

        <label for="selectAllEmailsId">Select All</label>
        <div class="notRequiredSuffix"></div>
    </div>
</div>
当我单击全选复选框时,它会用所有电子邮件地址填充我的收件人:文本字段

<div id="emailCheckListId" class="checkList">
     <ul id="emailCheckListId_ul">
         <li>
             <label for="root.module.emailCheckList_0" class="checkListLabel">
             <input type="checkbox"  
                          value="johndoe@aol.com" 
                          id="root.module.emailCheckList_0"            
                          name="root.module.emailCheckList"/>
                johndoe@aol.com
            </label>
        </li>

        <li>
              <label for="root.module.emailCheckList_1" class="checkListLabel">
              <input type="checkbox"  
                     value="janedoe@aol.com"       
                     id="root.module.emailCheckList_1" 
                     name="root.module.emailCheckList"/>
                janedoe@aol.com
            </label>
        </li>
    </ul>
</div>
但是,将选中emailCheckListId_ul中的复选框

如何设置它,以便在单击“全选”时填充所有复选框,当我取消选中“全选”时,从复选框中删除所有复选框,并从“收件人:”文本字段中删除电子邮件地址


感谢您花时间阅读此内容。

要选中复选框,请将其checked属性设置为true:

this.checked = true;
您可以使用以下方法更有效地收集值:

emails.push(this.value);
更一般地说,如果首先将每个复选框的状态设置为selectAllEmails复选框的状态,则可以设置复选框的选中状态:

this.checked = selectAllEmails.checked;
然后根据检查的邮件设置电子邮件数组的值

但是,由于您希望:

如果单击并选中了“全选”复选框,请选中所有复选框,并可能将标签更改为“全部取消选中” 如果未选中任何电子邮件地址复选框,则必须取消选中全选复选框,并将标签设置为全选。 如果单击了“全选”复选框,并且结果是该复选框未选中,则取消选中所有复选框。 因此,您需要一个功能来处理单击,另一个功能根据单击完成时选中的复选框来整理电子邮件地址

this.checked = selectAllEmails.checked;