[英]Radio button is checked on click event even though preventDefault is ran
thing.addEventListener('click', click) function click(e) { e.preventDefault() console.log(e.target.checked); }
<input id="thing" type="radio" name="gender">
即使运行了 preventDefault 并且未选中单选按钮,为什么e.target.checked == true
?
当您调用 preventDefault 时,单选按钮已被选中。 preventDefault 只是撤消此操作。 如果您在控制台日志上设置一个短超时,您可以看到这一点。
thing.addEventListener('click', click) function click(e) { e.preventDefault(); setTimeout(function(){ console.log(e.target.checked); }, 10); }
<input id="thing" type="radio" name="gender">
因为preventDefault()
从触发事件函数的标记中删除了值。 但是当after preventDefault()
被触发后, e.target.checked
是false
,如下所示。 所以最后 e.target.checked 是假的。
thing.addEventListener('click', click) function click(e) { e.preventDefault() console.log(e.target.checked); setTimeout(()=> console.log(e.target.checked), 100); }
<input id="thing" type="radio" name="gender">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.