Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2009, 14:53
Новичок на форуме
Отправить личное сообщение для ygerasimov Посмотреть профиль Найти все сообщения от ygerasimov
 
Регистрация: 02.09.2009
Сообщений: 3

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>
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2009, 15:51
Аспирант
Отправить личное сообщение для Viper Посмотреть профиль Найти все сообщения от Viper
 
Регистрация: 27.09.2008
Сообщений: 88

если версия 1.3.2 то это баг.
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2009, 16:00
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Замените Ваш 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
Ответить с цитированием
  #4 (permalink)  
Старый 07.09.2009, 08:13
Новичок на форуме
Отправить личное сообщение для ygerasimov Посмотреть профиль Найти все сообщения от ygerasimov
 
Регистрация: 02.09.2009
Сообщений: 3

большое спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Jquery, Dynatree и JSON antirek jQuery 6 01.09.2009 15:00
Как правильно подгрузить jQuery Siton jQuery 4 15.06.2009 09:54
подгрузка файлов через jQuery imdogma jQuery 4 05.05.2009 21:46
jquery tabs (проблема с отображением) Extern Элементы интерфейса 0 16.03.2009 17:42
первый опыт jquery. Вопросы. Titto jQuery 0 17.09.2008 10:32