簡體   English   中英

否則,如果從未到達語句則阻塞

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM