Javascript Switchery作为单选按钮,无法切换回

Javascript Switchery作为单选按钮,无法切换回,javascript,jquery,checkbox,toggle,switchery,Javascript,Jquery,Checkbox,Toggle,Switchery,现在使用switchery复选框制作播放列表, 已经把它变成了一个单选按钮 但它不能向后切换 如何使交换机返回空闲状态/未检查状态 >>我的小提琴演示很难确定您的问题,但如果我理解得很好,您希望取消选中单选按钮 嗯,你不能。单选按钮不会被取消选中。单选按钮池的含义是“仅选择以下选项之一”。取消选中单选按钮意味着用户选择零选项,这是不允许的 来自维基百科: 单选按钮或选项按钮是一种图形控制元素,允许用户仅选择预定义选项集中的一个 一开始可能没有选择组中的任何单选按钮。这个未选择的状态不能通过与单选

现在使用switchery复选框制作播放列表, 已经把它变成了一个单选按钮

但它不能向后切换

如何使交换机返回空闲状态/未检查状态


>>我的小提琴演示很难确定您的问题,但如果我理解得很好,您希望取消选中单选按钮

嗯,你不能。单选按钮不会被取消选中。单选按钮池的含义是“仅选择以下选项之一”。取消选中单选按钮意味着用户选择零选项,这是不允许的

来自维基百科:

单选按钮或选项按钮是一种图形控制元素,允许用户仅选择预定义选项集中的一个

一开始可能没有选择组中的任何单选按钮。这个未选择的状态不能通过与单选按钮小部件交互来恢复,尽管可以通过其他用户界面元素来恢复


如果你想选择零选项,你需要使用的是一个。

我迟到了,但我的解决方案是:

 var $switches = [];
 var elems = Array.prototype.slice.call();

 $.each(document.querySelectorAll('.js-switch'),function(i,html) {
     $switches[html.name] = new Switchery(html,{size: 'small',});
 });
 $('input.js-switch').on('change', function () { 
     if (this.checked) {
       $.each(document.querySelectorAll('input.js-switch:not([name="' + this.name + '"])'), 
       function (i, e) {
          switcherySetChecked($switchers[e.name], false)
       });
     }
 });
 function switcherySetChecked(switcher, check) {
     var curr = $(switcher.element).prop('checked');
     var disabled = $(switcher.element).prop('disabled');
     if (disabled) {
           switcher.enable();
     }
     if (check) {
            if (curr) {
                $(switcher.element).prop('checked',false);
            }
            $(switcher.element).trigger('click');
     } else {
            if (!curr) {
                $(switcher.element).prop('checked', true);
            }
            $(switcher.element).trigger('click');
     }
     if (disabled) {
            switcher.disable();
     }
 }

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何为您的建议创建一个.thx,已经在代码中编辑了更详细的问题@BSMPi已经通过javascript取消选中它,只有这里的开关不起作用的是@Right leg
 var $switches = [];
 var elems = Array.prototype.slice.call();

 $.each(document.querySelectorAll('.js-switch'),function(i,html) {
     $switches[html.name] = new Switchery(html,{size: 'small',});
 });
 $('input.js-switch').on('change', function () { 
     if (this.checked) {
       $.each(document.querySelectorAll('input.js-switch:not([name="' + this.name + '"])'), 
       function (i, e) {
          switcherySetChecked($switchers[e.name], false)
       });
     }
 });
 function switcherySetChecked(switcher, check) {
     var curr = $(switcher.element).prop('checked');
     var disabled = $(switcher.element).prop('disabled');
     if (disabled) {
           switcher.enable();
     }
     if (check) {
            if (curr) {
                $(switcher.element).prop('checked',false);
            }
            $(switcher.element).trigger('click');
     } else {
            if (!curr) {
                $(switcher.element).prop('checked', true);
            }
            $(switcher.element).trigger('click');
     }
     if (disabled) {
            switcher.disable();
     }
 }