How can I use jQuery/JavaScript to find out when a radio button is unchecked?
本问题已经有最佳答案,请猛点这里访问。
当复选框被选中时,我试图使用jquery函数隐藏/显示某些表单元素。选中单选按钮时,还应使用相同的功能隐藏/显示表单元素。收音机按钮有问题。我的函数无法判断何时取消选中某个单选按钮,因此在选中时变为可见的DIV现在可以隐藏,因为它未选中。我已经显示了下面的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <!-- html on one of the pages --> <fieldset> <label for="viaMail">Send offers to my mail</label> <input type="checkbox" id="viaMail" class="slide" autocomplete="off"> <label for="viaEmail">Send offers to my email address</label> <input type="checkbox" id="viaEmail" autocomplete="off"> </fieldset> <!-- div hidden with css using display: none rule --> <!-- input fields for mailing addresses etc --> <!-- end page one html --> <!-- html on page two --> <fieldset> <label for="viaMail">Send offers to my mail</label> <input type="radio" name="group1" id="viaMail" class="slide" autocomplete="off"> <label for="viaEmail">Send offers to my email address</label> <input type="radio" name="group1" id="viaEmail" autocomplete="off"> </fieldset> <!-- div hidden with css using display: none rule --> <!-- input fields for mailing addresses etc --> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /* the js function */ ShowHideDiv={ init:function(){ var radcheck = $(".slide"); //if the input element has the class 'slide' then the value of it's 'id' attribute //is retrieved and the class which has the same name as the 'id' of the current input //element is hidden or slided into view - in this case the 'viaMail' class radcheck.on("change",function(){ if($(this).prop('checked')== true) { $('body').find("."+$(this).attr('id')).slideDown('slow'); } else { $('body').find("."+$(this).attr('id')).slideUp('fast'); } }); } } |
号
我已经尝试了复选框的功能,它工作正常。它不适用于单选按钮-DIV是"向下滑动"到视图中,但它不会在选择其他单选按钮时通过"向上滑动"消失。非常感谢你的帮助。
你可以用
1 | if( $(this).is(':checked') ) |
号
文档中有更多关于它的信息。
另外,你也可以只用
这里演示
1 2 3 4 5 6 7 8 9 | $(function () { $('.slide').on("change", function () { if ($(this).is(':checked')) { $("." + $(this).attr('id')).slideDown('slow'); } else { $("." + $(this).attr('id')).slideUp('fast'); } }); }); |
应该像下面那样
1 | if( $(this).prop('checked', true) ) |
1 | if( !$(this).is(':checked') ) // if its unchecked |
。