jQuery. Действия по отметке checkbox'a
Добрый день,
на странице есть checkbox, по нажатию на которые должны проводится действия (проставление disable для элементов radiobutton, которые находятся в одной строке с чекбоксом). так же скрипт изначально деактивирует radiobutton, в строке которых чекбокс не отмечен. проблема состоит в том, что реакция на изменение чекбокса проводится только один раз и повторное нажатие не работает. код страницы: <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("label :checkbox:not(:checked)") .parent().parent().parent() .find(":radio") .attr('checked',false) .attr('disabled',true); $("label :checkbox:not(:checked)").click(function(){ $(this).parent().parent().parent() .find(":radio") .attr('disabled',false); return true; }) $("label :checkbox:checked").click(function(){ $(this).parent().parent().parent() .find(":radio") .attr('checked',false) .attr('disabled',true); return true; }) $("#clear-first").click(function(){ $("input[name='first']").attr('checked',false); }) $("#clear-second").click(function(){ $("input[name='second']").attr('checked',false); }) }); </script> </head> <body> <form> <table id="filters-select"> <thead> <tr> <td>filter name</td> <td>first filter</td> <td>second filter</td> </tr> </thead> <tbody> <tr> <td><label><input type="checkbox" name="first-check" checked="checked" class="filter-checkbox">first row</label></td> <td><label><input type="radio" name="first" value="1">value 1 col 1</label></td> <td><label><input type="radio" name="second" value="1">value 1 col 2</label></td> </tr><tr> <td><label><input type="checkbox" name="second-check" class="filter-checkbox">second row</label></td> <td><label><input type="radio" name="first" value="2">value 2 col 1</label></td> <td><label><input type="radio" name="second" value="2">value 2 col 2</label></td> </tr><tr> <td><label><input type="checkbox" name="third-check" class="filter-checkbox">third row</label></td> <td><label><input type="radio" name="first" value="3">value 3 col 1</label></td> <td><label><input type="radio" name="second" value="3">value 3 col 2</label></td> </tr> <tr> <td></td> <td><a id="clear-first">clear</a></td> <td><a id="clear-second">clear</a></td> </tr> </tbody> </table> </form> </body> </html> |
если версия 1.3.2 то это баг.
|
Замените Ваш js-код на
$(function(){ $("label :checkbox:not(:checked)") .parent().parent().parent() .find(":radio") .attr('checked',false) .attr('disabled',true); $("label :checkbox").change(function(){ $(this).parent().parent().parent() .find(":radio") .attr('disabled', this.checked); return true; }) $("#clear-first").click(function(){ $("input[name='first']").attr('checked',false); }) $("#clear-second").click(function(){ $("input[name='second']").attr('checked',false); }) }); и почитайте документацию по jQuery |
большое спасибо!
|
Часовой пояс GMT +3, время: 09:28. |