Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 1
Регистрация: 05.07.2015
Сообщений: 50

Выбор radio input + text input

25.12.2015, 13:02. Показов 2218. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Никак не могу решить задачу. Суть такая: на странице динамически создаются группы по 3 радио баттона + 1 селект и 1 просто инпут текст (групп может быть сколько угодно)

Нужно сделать что бы когда у первой группы к примеру выбран 1 радиобаттон, то у селекта и инпута у этой группы добавляется свойство disabled, если выбран 2 радиобаттон, то селект свойство disabled убирается, а у инпута добавляется disabled.

HTML5
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
28
29
30
<div class="row-fluid control-group">
                        <div class="radio">
                            <input type="radio" name="addressCheck[]" id="addressRadio0"
                                   checked="checked"> Disabled
                            <label class="radio" for="addressRadio0"></label>
                        </div>
                        <div class="span7 pull-left radio">
                            <input type="radio" name="addressCheck[]" id="addressRadio1"> Choose address
                            <label class="radio" for="addressRadio1"></label>
 
                            <div class="input-append">
                                <select name="meetingPointLocation[]" id="meetingPointLocation">
                                        <option disabled selected value="0">Choose</option>
                                        <option value="1">1</option>
                                </select>
                            </div>
                        </div>
                        <br>
                        <div class="span5 radio">
                            <input type="radio" name="addressCheck[]" id="addressRadio2">
                            Enter address
                            <label class="radio" for="addressRadio2"></label>
 
                            <div class="input-append">
                                <input type="text" name="meetingPointLocation[]" id="meetingPointLocation2"
                                       class="input-small percent" placeholder="enter amount"
                                       style="width: 50%">
                            </div>
                        </div>
                    </div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
$('input[name^="addressCheck"]').on('click', function () {
        //if($(this).first().next().attr('disabled') == 'disabled'){
        //    $('#meetingPointLocation2').attr('disabled', 'disabled');
        //    $('#meetingPointLocation').attr('disabled', null);
        //}
        $(this).closest(".control-group").find('[name^="meetingPointLocation"]').attr('disabled', 'disabled');
        $(this).closest(".control-group").find('[name^="meetingPointLocation"]').next().attr('disabled', null);
        console.log();
        //$('#meetingPointLocation').attr('disabled', 'disabled');
        //$('#meetingPointLocation2').attr('disabled', 'disabled');
    });
Миниатюры
Выбор radio input + text input  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2015, 13:02
Ответы с готовыми решениями:

Как вывести input radio в зависимости от выше выбранного input radio
Нужно сделать как бы вывод на странице двух input radion. Выбор пола. Мужчина и Женщина. Если я выбираю Мужчина, то выводятся ниже еще...

Действие с input radio
Нужно сделать чтобы по выбору radio услуга добавлялась в корзину, и чтобы последующее нажатие на radio больше не передавало данных. А если...

Передача value при выборе radio input
Добрый вечер! Есть такой вопрос: Как сделать,чтбы при выборе опредленного radio,его значение value передавалось в скрытый инпут (радио...

6
0 / 0 / 1
Регистрация: 05.07.2015
Сообщений: 50
04.01.2016, 18:07  [ТС]
Задача актуальна
0
 Аватар для ArtFeather
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
04.01.2016, 21:56
Грубо
JavaScript
1
2
3
4
5
6
7
if ('#radiobutton-1').prop("checked")
{
  $('#input-2').prop('disabled',false);
  $('#input-1').prop('disabled','disabled');
  $('#select-2').prop('disabled',false);
  $('#select-1').prop('disabled','disabled');
}
0
0 / 0 / 1
Регистрация: 05.07.2015
Сообщений: 50
04.01.2016, 22:03  [ТС]
Цитата Сообщение от ArtFeather Посмотреть сообщение
Грубо
JavaScript
1
2
3
4
5
6
7
if ('#radiobutton-1').prop("checked")
{
  $('#input-2').prop('disabled',false);
  $('#input-1').prop('disabled','disabled');
  $('#select-2').prop('disabled',false);
  $('#select-1').prop('disabled','disabled');
}
Сразу так и было сделано, но проблема в том: что на странице есть кнопка + при нажатии на которую создается новая группа из 3 чекбоксов и меняется имя у инпутов.
То есть к примеру у нас 2 группы чекбоксов:

HTML5
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<div class="row-fluid control-group">
                        <div class="radio">
                            <input type="radio" name="addressCheck[]" id="addressRadio0"
                                   checked="checked"> Disabled
                            <label class="radio" for="addressRadio0"></label>
                        </div>
                        <div class="span7 pull-left radio">
                            <input type="radio" name="addressCheck[]" id="addressRadio1"> Choose address
                            <label class="radio" for="addressRadio1"></label>
 
                            <div class="input-append">
                                <select name="meetingPointLocation[]" id="meetingPointLocation">
                                        <option disabled selected value="0">Choose</option>
                                        <option value="1">1</option>
                                </select>
                            </div>
                        </div>
                        <br>
                        <div class="span5 radio">
                            <input type="radio" name="addressCheck[]" id="addressRadio2">
                            Enter address
                            <label class="radio" for="addressRadio2"></label>
 
                            <div class="input-append">
                                <input type="text" name="meetingPointLocation[]" id="meetingPointLocation2"
                                       class="input-small percent" placeholder="enter amount"
                                       style="width: 50%">
                            </div>
                        </div>
                    </div>
<div class="row-fluid control-group">
                        <div class="radio">
                            <input type="radio" name="addressCheck[1]" id="addressRadio0[1]"
                                   checked="checked"> Disabled
                            <label class="radio" for="addressRadio0[1]"></label>
                        </div>
                        <div class="span7 pull-left radio">
                            <input type="radio" name="addressCheck[1]" id="addressRadio1[1]"> Choose address
                            <label class="radio" for="addressRadio1[1]"></label>
 
                            <div class="input-append">
                                <select name="meetingPointLocation[1]" id="meetingPointLocation">
                                        <option disabled selected value="0">Choose</option>
                                        <option value="1">1</option>
                                </select>
                            </div>
                        </div>
                        <br>
                        <div class="span5 radio">
                            <input type="radio" name="addressCheck[1]" id="addressRadio2[1]">
                            Enter address
                            <label class="radio" for="addressRadio2[1]"></label>
 
                            <div class="input-append">
                                <input type="text" name="meetingPointLocation[1]" id="meetingPointLocation2[1]"
                                       class="input-small percent" placeholder="enter amount"
                                       style="width: 50%">
                            </div>
                        </div>
                    </div>
То есть при нажатии на + на странице добавляется группа чекбоксов и у них увеличивается на 1 name и id (
addressCheck[0]
addressCheck[1]
addressCheck[2]
)
И уже выходит что "грубый" метод не подходит, нужно что то универсальное, но можно что бы было привязано именно к этому коду.
0
 Аватар для ArtFeather
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
04.01.2016, 22:25
Получить все количество radio на странице, пройтись циклом, проверить их состояние, изменить состояние других необходимых элементов.
0
0 / 0 / 1
Регистрация: 05.07.2015
Сообщений: 50
04.01.2016, 22:30  [ТС]
Цитата Сообщение от ArtFeather Посмотреть сообщение
Получить все количество radio на странице, пройтись циклом, проверить их состояние, изменить состояние других необходимых элементов.
Вот на деле и не выходит это сделать. Да и как проверять их состояние если имена все разные и какие блокировать, а какие нет тоже не известно
0
 Аватар для ArtFeather
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
05.01.2016, 14:41
Лучший ответ Сообщение было отмечено andrei24 как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    $('input[type="radio"]').on('click',function() {
        var fparent = $(this).parent();
        var sparent = $(this).parent().parent();
            if ($(fparent).prop('class') == 'radio')
            {
                $(sparent).find('.input-append select').prop('disabled','disabled');
                $(sparent).find('.input-append input[type="text"]').prop('disabled','disabled');
            }
            else
                if ($(fparent).prop('class') == 'span7 pull-left radio')
                {
                $(sparent).find('.input-append select').prop('disabled',false);
                $(sparent).find('.input-append input[type="text"]').prop('disabled','disabled');                    
                }
            else
            {
                    $(sparent).find('.input-append select').prop('disabled','disabled');
                    $(sparent).find('.input-append input[type="text"]').prop('disabled',false);             
            }
    });
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.01.2016, 14:41
Помогаю со студенческими работами здесь

Переключение input radio по клику на div
есть форма : &lt;form id=&quot;form&quot; action=&quot;&quot; method=&quot;post&quot;&gt; &lt;div class=&quot;block-for-form&quot; id=&quot;div1&quot;&gt; &lt;input type=&quot;radio&quot;...

Добавил событие к input radio и не добавляется checked
Добавил событие к input radio и не добавляется checked. Все работает, только checked нету. Вот код: &lt;script&gt; ...

Событие если при выборе input:radio
Как заставить меняться value в input fullprice и childprice, если выбирается input:radio с value 135 $(&quot;vy&quot;) =...

Снять или поставить checked у input radio с jQuery
Здравствуйте, подскажите как с помошью скрипта ставить и убирать выделение у input тегов через библиотеку JQuery? В данный момент все...

Select2 input text
Здравствуйте. Использую плагин select2. Есть форма &lt;div class=&quot;group&quot;&gt; &lt;label&gt; центр&lt;/label&gt; &lt;input...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru