How to uncheck checked radio button
本问题已经有最佳答案,请猛点这里访问。
问题是这个解决方案只在火狐中有效
1 2 3 4 5 6 7 | $(':radio').on("change", function(event) { $(this).prop('checked', true); }); $(':radio').on("click", function(event) { $(this).prop('checked', false); }); |
在Chrome中,它不允许您选择任何内容http://jsfiddle.net/wuawn/
ofc,我可以用变量来写
1 2 3 4 5 6 7 8 | var val = -1; $(':radio').on("click", function() { if($(this).val() == val) { $(this).prop('checked', false); val = -1; } else val = $(this).val(); }); |
但是我的页面上只有很少的单选按钮组,HTML内容是通过Ajax加载的,所以我想为所有这些控件都编写1个函数,而不是为每个单选按钮组定义变量,为每个单选按钮组编写相同的函数。
编辑:感谢您对复选框的帮助,但是要使复选框作为一个单选按钮组,您需要编写一个将取消选中所有其他同名复选框的默认javascrip。onclick,我已经有了一个单选按钮css,它对我来说更简单,只需添加类似类的复选框并使其看起来像复选框,我使用统一的库for自定义外观,这里是我的奇怪解决方案http://jsfiddle.net/wuawn/9/
这个简单的脚本允许您取消选中已经选中的单选按钮。适用于所有启用javascript的浏览器。
1 2 3 4 5 6 7 8 9 10 11 12 13 | var allRadios = document.getElementsByName('re'); var booRadio; var x = 0; for(x = 0; x < allRadios.length; x++){ allRadios[x].onclick = function() { if(booRadio == this){ this.checked = false; booRadio = null; } else { booRadio = this; } }; } |
1 2 3 | <input type='radio' class='radio-button' name='re'> <input type='radio' class='radio-button' name='re'> <input type='radio' class='radio-button' name='re'> |
单选按钮是必需的选项…如果要取消选中它们,请使用复选框,不必使事情复杂化并允许用户取消选中单选按钮;删除jquery允许您从其中一个选项中进行选择。
您可以考虑为每个标记为"无"或类似的组添加一个额外的单选按钮。这可以在不使开发过程复杂化的情况下创建一致的用户体验。
试试这个
所有收音机的单一功能都具有"收音机按钮"类
在Chrome和FF中工作
1 2 3 4 | $('.radio-button').on("click", function(event){ $('.radio-button').prop('checked', false); $(this).prop('checked', true); }); |
1 2 3 4 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> <input type='radio' class='radio-button' name='re'> <input type='radio' class='radio-button' name='re'> <input type='radio' class='radio-button' name='re'> |
试试这个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var radio_button=false; $('.radio-button').on("click", function(event){ var this_input=$(this); if(this_input.attr('checked1')=='11') { this_input.attr('checked1','11') } else { this_input.attr('checked1','22') } $('.radio-button').prop('checked', false); if(this_input.attr('checked1')=='11') { this_input.prop('checked', false); this_input.attr('checked1','22') } else { this_input.prop('checked', true); this_input.attr('checked1','11') } }); |
1 2 3 4 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> <input type='radio' class='radio-button' name='re'> <input type='radio' class='radio-button' name='re'> <input type='radio' class='radio-button' name='re'> |