我有一個單選按鈕列表。從取消選中的單選按鈕刪除班級名稱
<input type="radio" name="capital" value="bratislava">
<input type="radio" name="capital" value="kiev">
<input type="radio" name="capital" value="prague">
單選按鈕事件監聽器類型change
我添加一些class
名這樣的。
// Scope toggles
var toggles = document.querySelectorAll('input[type=radio]');
// Accesses the toggles length property outside the loop and make the loop run faster
var tL = toggles.length;
// Loop-in for `toggles` length HTML collection
for (var i = 0; i < tL; i++) {
// Store array-like objects in this variable
var currentToggle = toggles[i];
// Run event listener method on `change` and refer to element using `this` keyword
currentToggle.addEventListener('change', function() {
// + ADD CLASS NAME
// Check if element is checked and if className isn't present
if (this.checked && !this.className.match(/(?:^|\s)class(?!\S)/)) {
// Add class name without removing/affecting existing values
this.className += " class";
}
// - REMOVE CLASS NAME
else {
// Replace class with empty string
this.className = this.className.replace(/(?:^|\s)class(?!\S)/g , '');
}
})
}
這適用於複選框元素,但不適用於單選按鈕組。 目標是在這個問題的標題。
爲了解決它,我假設我應該在if語句中設置另一個循環,併爲所有未經檢查的收音機循環並刪除該類?
上 「點擊」 事件添加監聽器單選按鈕,而不是 「變」。 –
單選按鈕只支持兩個事件:'change'和'input'。 –
這似乎更接近你的問題。看一看;希望它是幫助! https://stackoverflow.com/questions/8838648/onchange-event-handler-for-radio-button-input-type-radio-doesnt-work-as-one –