[英]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.