checkbox.addEventListener('mousedown', function(){
if(!this.checked) {
var preventUnselect = function(){
this.checked = true;
checkbox.removeEventListener('click', preventUnselect)
};
checkbox.addEventListener('click', preventUnselect)
this.checked = true;
}
});
<input type="checkbox" id="checkbox"/>
Я почти уверен, что ваш флажок снят, поскольку по умолчанию флажок изменяет свое состояние после щелчка.Если вы установите флажок после mousedown, то после завершения события click его состояние переключится (снова станет не проверенным).Просто установите флажок и переместите указатель за его пределы, продолжая удерживать левую клавишу мыши - флажок не будет снят, когда вы отпустите кнопку.
Вы должны привязать событие щелчка после mousedown и удалитьсобытие после.Если событие не было удалено, ваш флажок будет установлен навсегда.