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

Выбор radio input + text input

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

Author24 — интернет-сервис помощи студентам
Всем привет. Никак не могу решить задачу. Суть такая: на странице динамически создаются группы по 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2015, 13:02
Ответы с готовыми решениями:

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

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

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

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

6
0 / 0 / 1
Регистрация: 05.07.2015
Сообщений: 50
04.01.2016, 18:07  [ТС] 2
Задача актуальна
0
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
04.01.2016, 21:56 3
Грубо
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  [ТС] 4
Цитата Сообщение от 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
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
04.01.2016, 22:25 5
Получить все количество radio на странице, пройтись циклом, проверить их состояние, изменить состояние других необходимых элементов.
0
0 / 0 / 1
Регистрация: 05.07.2015
Сообщений: 50
04.01.2016, 22:30  [ТС] 6
Цитата Сообщение от ArtFeather Посмотреть сообщение
Получить все количество radio на странице, пройтись циклом, проверить их состояние, изменить состояние других необходимых элементов.
Вот на деле и не выходит это сделать. Да и как проверять их состояние если имена все разные и какие блокировать, а какие нет тоже не известно
0
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
05.01.2016, 14:41 7
Лучший ответ Сообщение было отмечено 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
05.01.2016, 14:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.01.2016, 14:41
Помогаю со студенческими работами здесь

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

Событие если при выборе input:radio
Как заставить меняться value в input fullprice и childprice, если выбирается input:radio с value...

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru