在下面这段html代码中加JS代码实现全选功能、取消功能、反选功能、提交按钮吗?<body> <div> <form action="#"> <div> 请选择你的爱好: <input type="checkbox" id="check-all" /> 全选 </div> <div> <input type="checkbox" name="hobby" value="学习"> 学习 <input type="checkbox" name="hobby" value="睡觉"> 睡觉 <input type="checkbox" name="hobby" value="健身"> 健身 <input type="checkbox" name="hobby" value="玩耍"> 玩耍 </div> <div> <button type="button" id="all">全选</button> <button type="button" id="no">取消</button> <button type="button" id="reverse">反选</button> <button type="button" id="send">提交</button> </div> </form> </div> </body>
时间: 2023-10-10 11:06:33 浏览: 107
可以通过以下JS代码实现全选、取消、反选、提交功能:
```javascript
// 获取相关元素
const checkAll = document.getElementById('check-all');
const checkboxes = document.querySelectorAll('input[type="checkbox"][name="hobby"]');
const btnAll = document.getElementById('all');
const btnNo = document.getElementById('no');
const btnReverse = document.getElementById('reverse');
const btnSend = document.getElementById('send');
// 全选
btnAll.addEventListener('click', () => {
checkboxes.forEach((checkbox) => {
checkbox.checked = true;
});
checkAll.checked = true;
});
// 取消
btnNo.addEventListener('click', () => {
checkboxes.forEach((checkbox) => {
checkbox.checked = false;
});
checkAll.checked = false;
});
// 反选
btnReverse.addEventListener('click', () => {
checkboxes.forEach((checkbox) => {
checkbox.checked = !checkbox.checked;
});
checkAll.checked = Array.prototype.every.call(checkboxes, (checkbox) => checkbox.checked);
});
// 提交
btnSend.addEventListener('click', () => {
const checkedValues = Array.prototype.filter.call(checkboxes, (checkbox) => checkbox.checked)
.map((checkbox) => checkbox.value);
console.log(checkedValues); // 可以将选中的值提交到后端
});
// 全选/取消全选
checkAll.addEventListener('change', () => {
checkboxes.forEach((checkbox) => {
checkbox.checked = checkAll.checked;
});
});
```
将以上代码放在`<script>`标签中,插入到HTML代码中即可实现相应功能。
阅读全文