Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проверка на type="radio" (https://javascript.ru/forum/events/55098-proverka-na-type%3D-radio.html)

NotGoodEnough 13.04.2015 21:29

Проверка на type="radio"
 
На странице ИМ есть две группы опций с type="radio". В пределах одной группы, как и положено, активный radio может быть лишь один. Возможно ли через js сделать проверку на единственный активный radio в обеих группах? Т.е. чтобы когда уже выбран radio в первой группе, то при клике на radio во второй - первый сбрасывался.

Опции выводятся так:
Код:

        <?php if ($options) { ?>
        <div class="image-options">
            <?php foreach ($options as $option) { ?>
            <?php if ($option['type'] == 'image') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <table class="option-image">
                    <?php echo $option['name']; ?>:
            <?php foreach ($option['option_value'] as $option_value) { ?>
            <tr>
<td><input type="radio" name="option[<?php echo $option['product_option_id']; ?>]"
value="<?php echo $option_value['product_option_value_id']; ?>"
id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /
</td>
...
            </tr>
            <?php } ?>
          </table>
        </div>
        <?php } ?>
                <?php } ?>
        </div>
        <?php } ?>


Brutus 13.04.2015 21:32

Да объедини ты группы, они для этого и нужны, а php все равно не отмеченный инпут не примет

NotGoodEnough 13.04.2015 21:34

Цитата:

Сообщение от Brutus (Сообщение 366505)
Да объедини ты группы, они для этого и нужны, а php все равно не отмеченный инпут не примет

Не могу объединить т.к. надо так http://joxi.ru/MAjpOQyIXDnYme

Brutus 13.04.2015 21:50

Почему не можешь, подумай хорошенько очень даже можешь, ведь в двух группах тебе нужен всего один активный инпут, а узнать какой именно из двух групп выбран можно очень даже просто на пыхе

NotGoodEnough 13.04.2015 22:10

Цитата:

Сообщение от Brutus (Сообщение 366508)
Почему не можешь, подумай хорошенько очень даже можешь, ведь в двух группах тебе нужен всего один активный инпут, а узнать какой именно из двух групп выбран можно очень даже просто на пыхе

Так я уже несколько часов гуглю и пока ни как. Единственное, что попалось из рабочих вариантов http://forum.php.su/topic.php?forum=40&topic=2611 но у меня нет возможности дать группам заранее известные id

Brutus 13.04.2015 22:26

Ты не гугли дай им одинаковые name и разные value в php смотри по value и совершай дальнейшие действия

NotGoodEnough 13.04.2015 22:38

Цитата:

Сообщение от Brutus (Сообщение 366525)
Ты не гугли дай им одинаковые name и разные value в php смотри по value и совершай дальнейшие действия

В коде страницы так:
<td><input type="radio" name="option[247]"  points="0" price_prefix="+" price="2800.0000" value="205" id="option-value-205"  onchange="recalculateprice();" /></td>

<td><input type="radio" name="option[1131]"  points="0" price_prefix="+" price="2000.0000" value="1131" id="option-value-1131"  onchange="recalculateprice();" /></td>


Т.е. value по дефолту разный, а одинаковые name сделать не могу т.к. слетает далее привязанный к ней label

Brutus 13.04.2015 22:51

Воу воу лабел вообще по id крепится http://htmlbook.ru/html/label

Так что давай

А если не собираешься делать все устойчивым к людям с отключенным js можешь писать скрипт

NotGoodEnough 13.04.2015 22:57

Цитата:

Сообщение от Brutus (Сообщение 366527)
Воу воу лабел вообще по id крепится http://htmlbook.ru/html/label

Так что давай

А если не собираешься делать все устойчивым к людям с отключенным js можешь писать скрипт

Точно, что-то я затупил вообще)
Так а что мне даст, если будет одинаковый name?
Т.е. сугубо через js это не сделать?

Brutus 14.04.2015 14:53

Через js очень даже легко, а вот только плохо.

Одинаковый name даст возможность выбрать только один из множества с такими же name, и в PHP по конструкции
$_POST['name'] или $_GET ['name'] ты получишь value выбранного элемента

Популярнее мне не объяснить:(


Часовой пояс GMT +3, время: 11:21.