0

I want check the checkbox, without trigger the alert.

<div onclick="alert('test')">
Lorem ipsum dolor sit amet consectetur, adipisicing elit.
    <input type="checkbox">
</div>

I have tried pointer-events: none and z-index: 1000

ABJ
  • 37
  • 1
  • 1
    [Event.stopPropagation()](https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation) – DBS Apr 03 '23 at 10:08

2 Answers2

0

Try this;

const checkbox = document.getElementById('myCheckbox')
const div= document.getElementById('myDiv')
var checkboxPrevState=checkbox.checked;

div.addEventListener('click',(event)=>{
  var checkboxCurrentState=checkbox.checked;
  if(checkboxPrevState==checkboxCurrentState){
      alert("test");
  }
  else{
    checkboxPrevState=checkboxCurrentState;
  }
})
<div id="myDiv">
Lorem ipsum dolor sit amet consectetur, adipisicing elit.
    <input id="myCheckbox" type="checkbox">
</div>
MrAlbino
  • 308
  • 2
  • 10
0

It is generally not a good idea to use inline event handlers.

Use event delegation instead. Something like:

document.addEventListener(`click`, handle);

function handle(evt) {
  if (+evt.target.dataset.clickable === 1) {
    evt.target.dataset.nclicks = +evt.target.dataset.nclicks + 1;
    console.clear();
    console.log(`You clicked ${evt.target.dataset.nclicks} times!`);
  }
}
<div data-clickable="1" data-nclicks="0">
  Lorem ipsum dolor sit amet consectetur, adipisicing elit.
  <div><input type="checkbox"> check me</div>
</div>
KooiInc
  • 119,216
  • 31
  • 141
  • 177