- Published on
Day10: Hold Shift and Check Checkboxes
- Authors

- Name
- irisjustdoit
- @irisjustdoit

Project Introduction: Check multiple checkboxes while holding the Shift key.
Project Page: https://iris1114.github.io/javascript30/10_Hold-Shift-and-Check-Checkboxes/
Implementation
- Get all checkbox elements
- Use forEach to iterate, applying the handleCheck() function when elements are clicked
Code
const checkboxes = document.querySelectorAll(".inbox input[type='checkbox']")
let lastChecked
function handleCheck(e) {
let inBetween = false // Flag for Shift key press
if (e.shiftKey && this.checked) {
// Check if Shift key is pressed and checkbox is checked
checkboxes.forEach((checkbox) => {
console.log(checkbox)
// Record from first checked checkbox to last checked checkbox
if (checkbox === this || checkbox === lastChecked) {
inBetween = !inBetween // Now inBetween = true
console.log('Starting to check them in between!')
}
if (inBetween) {
checkbox.checked = true // Check boxes when inBetween = true
}
})
}
lastChecked = this
}
checkboxes.forEach((checkbox) => {
checkbox.addEventListener('click', handleCheck)
})
