Показать сообщение отдельно
  #1 (permalink)  
Старый 22.03.2018, 12:16
Аспирант
Отправить личное сообщение для timko_ya Посмотреть профиль Найти все сообщения от timko_ya
 
Регистрация: 06.11.2017
Сообщений: 33

Помощь с кнопками radio
Привет всем, нужна ваша помощь, имеется форма, которая передается методом POST. В ней имеется два checkbox, при нажатии на которые становятся активными определенные radio.

Если нажать на первый чекбокс, то активируются следующие элементы:
<input type="checkbox" id="1" value="1" name="group" data-cls="one"/>
<label for="1"><b>Запись публикуется на странице</b></label>

<input type="radio" id="4" value="4" name="user" class="item one" disabled="disabled"/>
<label for="4">Запись доступна только друзьям</label>
<input type="radio" id="5" value="5" name="user" class="item one" disabled="disabled"/>
<label for="5">Запись доступна всем пользователям</label>


Если нажать на второй чекбокс, то активируются следующие элементы:
<input type="checkbox" id="0" value="0" name="group" data-cls="two"/>
<label for="0"><b>Запись публикуется в сообществе</b></label>

<input type="radio" id="2" value="2" name="groups" class="item two" disabled="disabled"/>
<label for="2">Запись публикуется от имени сообщества</label>
<input type="radio" id="3" value="3" name="groups" class="item two" disabled="disabled"/>
<label for="3">Запись публикуется от имени пользователя</label>


Работает все через данный код javascript:
window.addEventListener('DOMContentLoaded', function() {
    [].forEach.call(document.querySelectorAll('[data-cls]'), function(btn) {
            var cls = btn.dataset.cls;
            btn.addEventListener('change', function() {
            [].forEach.call( document.querySelectorAll('.item'), function(el) {
                   el.value = '' ;
                   el.disabled = !el.classList.contains(cls)
               });
            });
        });
    });


Проблема в следующем, если оставить все как есть, то значение radio и checkbox не предаются, проверял через принт пост:
str_replace('  ', '&nbsp; ', nl2br(print_r($_POST, true)));

Если со всех чекбоксов и радио убрать данные строки, то значения id передаются серверу, в чем проблема?
class="item one" disabled="disabled"
class="item two" disabled="disabled"


А вот что самое интересное, то с инпутами такой проблемы нет, все значения передаются:
<input type="text" id="services" class="item one" placeholder="Экспорт записи: twitter,facebook" name="services" disabled="disabled"/>

Последний раз редактировалось timko_ya, 22.03.2018 в 12:25.
Ответить с цитированием