javascript - 使用 JavaScript 处理单选按钮事件

标签 javascript

我正在尝试创建一个自定义样式的单选按钮并使用 JavaScript 处理其事件。所以简单的任务是;选择或取消选择单选按钮时添加或删除类。

它可以通过 change 事件来实现,但我的问题是取消选择组上的 radio 并不会触发该事件。

我该如何处理这个问题?

附注
不使用框架会更好。

这是我的示例代码( fiddle ):

(function() {
    var input = document.querySelectorAll('input');
    var callback = function(e) {
      e.addEventListener('change', function() {
        if (this.checked) {
          this.classList.add('colored');
        } else {
          // I would like this one to be triggered when
          // the radio button was deselected by the user.
          this.classList.remove('colored');
        }
     });
  }
  Array.prototype.forEach.call(input, callback);
})();

最佳答案

(function() {
    var input = document.querySelectorAll('input');
  var callback = function(e) {
    e.addEventListener("change", function() {
    var radios = document.getElementsByName('radio-group');
    for( i = 0; i < radios.length; i++ ) {
        if(radios[i].checked ) {
            radios[i].classList.add('colored');;
        }
        else{
        radios[i].classList.remove('colored');;
        }
     }
    });
  }
  Array.prototype.forEach.call(input, callback);
})();

您必须浏览每个单选按钮

关于javascript - 使用 JavaScript 处理单选按钮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47770626/

相关文章:

javascript - kendoui 网格和 react : selectable row allows to select one row in each page

javascript - 地球轨道模拟速度不正确

javascript - 为什么 Chrome 会在内存中保留匿名 MediaRecorder 对象?

javascript - JQuery,在使用 promise 之前删除一行

javascript - 将Error对象传递给函数会使其消息不确定

javascript - 在 Head 加载之前渲染 HTML 页面

javascript - 变量为 null(仅在 Mozilla 中)

javascript - 您如何在单击时删除一个类并将其添加到两个列表元素

javascript - 未捕获的类型错误 : Cannot use 'in' operator to search for

javascript - 扩展 ng-if 或实现类似的指令