적어도 하나 이상을 확인해야한다는 조건으로 확인란 목록이 필요합니다.
다음 코드는 그 효과를 나타냅니다. 이 코드도 작동하는 이유 체크 박스의 클릭 이벤트를 취소하면 체크 할 수 없습니까?
document.querySelector('div').addEventListener('click', function(evt){
if(this.querySelectorAll('input:checked').length == 0)
evt.preventDefault() ;
}) ;
<div>
<input type=checkbox checked>
<input type=checkbox>
<input type=checkbox>
</div>
첫째, 나는 더 체크 박스을 확인하지가 말한다 상태를 확인 한 후에 만 클릭 이벤트에 .preventDefault()
을하고 있어요. 이 시점에서 클릭 이벤트를 취소하면 아무런 차이가 없어야합니다.
둘째, 코드는 난 단지 클릭 이벤트를 취소하고 있습니다 때문에 완전히 이상한 키보드를 사용하여 확인란을 선택하려고 할 경우에도 작동합니다.
왜 코드가 작동하는지 설명하십시오. 입력 이벤트 리스너를 실행하는 동안
흥미롭게도, preventDefault는 롤백 로직 형태를 가지고 있다고 가정합니다. – Keith