Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выделение строки цветом при активном radio, при нажатии  
:(
    Опции темы
neokortex
Дата 29.6.2009, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 19.3.2007

Репутация: нет
Всего: нет



При включенном (нажатом/выделеном) radio должен цветом выделяться текст около radio.
Сейчас это выглядит примерно так:
Код

<p><input id="radio_1" name="RadioGroup1" value="value_1" type="radio">текст 1</p>
<p><input id="radio_2" name="RadioGroup1" value="value_2" type="radio">текст 2</p>
<p><input id="radio_3" name="RadioGroup1" value="value_3" type="radio">текст 3</p>

Таким образом цветом должен выделяться тот параграф, где включен radio.

Сейчас у меня сделано неправильно: цветом выделяется, но если переключить на другой radio все равно остается выделенным цветом.

Помогите, пожалуйста.

Это сообщение отредактировал(а) neokortex - 29.6.2009, 21:36
PM MAIL   Вверх
bars80080
Дата 29.6.2009, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



ну а где javascript код?

надо запускать цикл, который пробежится по всем элементам радио, присваивая им пустой или белый цвет, а тот который выделен - включить свет

что-то типа <input type="radio" onclick="func();" ...

Код

function func() {
    var rd = document.getElementsByName('RadioGroup1');
    var rdc = rd.length;
    for(var i = 0; i < rdc; i++) {
        if(rd[i].checked) rd[i].parentNode.style.background = '#ffff00';
        else rd[i].parentNode.style.background = '#ffffff';
    }
}

PM MAIL WWW   Вверх
neokortex
Дата 29.6.2009, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 19.3.2007

Репутация: нет
Всего: нет



спасибо большое. тлолько учусь smile
PM MAIL   Вверх
IDVsbruck
Дата 30.6.2009, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



Не претендую на оригинальность, но фреймворки позволяют справляться с такими задачами быстро, удобно и компактно. На jQuery:
Код
$("input:radio[name='RadioGroup1']").focus(function(){$(this).parent().css({"color":"#f00"})}).blur(function(){$(this).parent().css({"color":"#000"})});

Механизм построен на получении и потере фокуса, хотя можно также, но на клике и потере фокуса - как удобнее, хотя мой вариант с фокусом идеологически правильнее. Само собой, обработчик надо прописать в постзагрузчик страницы или на jQuery: $(document).ready(function(){...}); или $(function(){...});
PM MAIL   Вверх
Samotnik
Дата 30.6.2009, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



На будущее: neokortex, в задачах подобного типа, ключевым моментом является свойство checked у радио элемента  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.