Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.04.2012, 02:10
Интересующийся
Отправить личное сообщение для klev2004 Посмотреть профиль Найти все сообщения от klev2004
 
Регистрация: 05.04.2012
Сообщений: 25

Выбор radiobutton в ячейке таблицы
Есть таблица с ячейками, в каждой из которых есть элемент input с типом radio. Смысл такой - при клике мышей на ячейку таблицы должен устанавливаться в selected радиобаттон, который расположен внутри этой ячейки. Написал такую вот функцию, реализована подсветка выбранной ячейки, но не знаю как правильно в ячейки найти элемент типа input и установить ему атрибут checked.

function cellClick(td) {
    var elements = document.getElementsByTagName('td');
    for (var i = 0; i < elements.length; i++)
    {
        if(elements[i].className=='select_pay_radio')
        {
            elements[i].bgColor='#EFEFEF';
            // тут перекрашиваю все ячейки в один цвет (деактивирую, если какая-то уже была выбрана до этого)
        }
    }
    td.bgColor='#ccc';
    // здесь выделяю выбранную ячейку другим цветом
    // и тут же нужно в этой ячейке отметить флагом checked input типа radio
  }

Последний раз редактировалось klev2004, 10.04.2012 в 03:15.
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2012, 11:12
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

У тебя есть td, который как я понимаю является кликнутой ячейкой.

Далее все просто:
for (var childItem in td.childNodes) {
    if (td.childNodes[childItem].nodeType == 1)
       td.childNodes[childItem].checked = true;
}

Обход детей: здесь
Ответить с цитированием
  #3 (permalink)  
Старый 10.04.2012, 11:58
Аватар для GuardCat
Просто любитель
Отправить личное сообщение для GuardCat Посмотреть профиль Найти все сообщения от GuardCat
 
Регистрация: 13.09.2011
Сообщений: 300

ie 9+
td.querySelector("input[type=radio]").checked = true;
Ответить с цитированием
  #4 (permalink)  
Старый 10.04.2012, 12:57
Интересующийся
Отправить личное сообщение для klev2004 Посмотреть профиль Найти все сообщения от klev2004
 
Регистрация: 05.04.2012
Сообщений: 25

cmygeHm, GuardCat, спасибо! Оба варианта работают.
Оказывается я пробовал уже их применять, но не указывал td. а вместо него писал elements.

Возможно кому-то тоже понадобится такая функция:

function cellClick(td) {
    var elements = document.getElementsByTagName('td');
    // снимаем со всех ячеек выделение цветом (если было установлено ранее)
    for (var i = 0; i < elements.length; i++)
    {
        if(elements[i].className=='select_pay_radio')
        {
            elements[i].bgColor='#EFEFEF';
        }
    }
    // устанавливаем другой цвет для выбранной ячейки
    td.bgColor='#ccc';
    // активируем radio внутри выбранной ячейки
    for (var childItem in td.childNodes)
    {
        if (td.childNodes[childItem].nodeType == 1)
        {
           td.childNodes[childItem].checked = true;
        }
    }
  }
Ответить с цитированием
  #5 (permalink)  
Старый 10.04.2012, 13:09
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

На здоровье! Расти большой!
Да, в моем варианте действительно надо бы убеждаться, что это радиобатон, а то сделаешь checked = true для какого-нибудь textarea
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор из таблицы HOmevl Общие вопросы Javascript 4 15.09.2011 01:40
OnClick ячейки таблицы и ссылки в этой ячейке MasDen Javascript под браузер 2 30.06.2011 10:34
Обращение к background-image в ячейке таблицы Gh0stik Events/DOM/Window 2 04.01.2010 23:55
Оптимальное количество знаков в ячейке таблицы zahar Элементы интерфейса 5 26.08.2009 22:28
Не могу получить доступ к ячейке таблицы Andrey2005 Элементы интерфейса 4 15.06.2009 00:34