[英]else block in if statement is never reached
我知道IF語句上有很多類似的問題,但我還沒有發現一個特定的問題
我不明白為什么當條件應該在true和false之間切換時,else塊永遠不會被命中
document.getElementById("outlineCheck").addEventListener("click", function() { if (document.getElementById("outlineCheck").checked == true) { document.getElementById("outlineCheck").checked = false; } else { console.log("hit") document.getElementById("outlineCheck").checked = true; } });
<label><input asp-for="CourseOfferingOverviewFlag" value="1" id="outlineCheck" type="radio" />
它永遠不會給else
,因為你隨時撤消用戶做了什么。
該按鈕最初未被選中。 當用戶單擊該按鈕時,它將被選中,因此您進入if
塊並取消選中該按鈕。 下次用戶單擊按鈕時,會發生相同的事情。
作為@Barmar答案,您一直都在取消選中該復選框。
如果您嘗試以檢查或非檢查模式執行某項操作,那么我認為您可以這樣做來訪問這兩種情況:
PS嘗試緩存DOM訪問以獲得更好的性能。
例
var $checkbox = document.getElementById("outlineCheck"); $checkbox.addEventListener("click", function() { if ($checkbox.checked) { console.log('Now is checked') } else { console.log('And now is unchecked') } });
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <input type="checkbox" id="outlineCheck">TEST </body> </html>
如果您需要使用單選按鈕輸入,則至少應有兩個輸入單選按鈕,因此,第一次單擊將為true,並且不能將其設置為false,應改用復選框。 更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.