А так спасибо, все работает, и спасибо за остальные твои ответы, я раньше об этом и не знал. Теперь с этим кодом, все работает нормально, как нужно.
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.disabled = !el.classList.contains(cls) }); }); }); }); |
Цитата:
str_replace(' ', ' ', nl2br(print_r($_POST, true))); ибо это глупость, а так: echo '<pre>'; print_r($_POST); тогда бы картина происходящего была бы видна в полной мере. Клиент выберет первую группу, выберет в ней, затем выберет вторую группу и в ней выбор. Вопрос - что получит сервер и что ему надо делать в этом случае? |
Цитата:
|
Ну, если обмануть, то результат error.
|
timko_ya,
А не лучше ли чекбоксы заменить на радио? Со сбросом checked на дочерних радио при переключении |
Цитата:
|
Цитата:
Не важно что, важно как. Пусть есть в базе две группы "менов": "Мачо" и "Ботаники". Каждая эта группа описана в таблице и имеет уникальный идентификатор: 1, Мачо 2, Ботаники Члены этих групп описываются в связанных таблица, то есть, для каждой группы своя таблица ее членов, которые также имеют уникальный идентификатор: Члены группы Мачо 1, Джон 2, Джек 3, Арнольд Члены группы Ботаники 1, Томас 2, Чарли То есть, идентификаторы членов разных групп могут совпадать. Задача - получить выбор одного пользователя какой либо группы. Для этого имена полей формы будут связаны по идентификатору группы, а значения их будут равны идентификаторам члена группы. Но если отдать форму как есть: <form id="f1"> <fieldset> <legend>Мачо</legend> <label><input type="radio" name="group[1]" value="1" /> Джон</label> <label><input type="radio" name="group[1]" value="2" /> Джек</label> <label><input type="radio" name="group[1]" value="3" /> Арнольд</label> </fieldset> <fieldset> <legend>Ботаники</legend> <label><input type="radio" name="group[2]" value="1" /> Томас</label> <label><input type="radio" name="group[2]" value="2" /> Чарли</label> </fieldset> </form> То выбрать только одного из из любой группы не получится, при этом лишние элементы серверу не нужны. Выход - сбрасывать выбор в группе противоположной текущей: <form id="f1"> <fieldset> <legend>Мачо</legend> <label><input type="radio" name="group[1]" value="1" /> Джон</label> <label><input type="radio" name="group[1]" value="2" /> Джек</label> <label><input type="radio" name="group[1]" value="3" /> Арнольд</label> </fieldset> <fieldset> <legend>Ботаники</legend> <label><input type="radio" name="group[2]" value="1" /> Томас</label> <label><input type="radio" name="group[2]" value="2" /> Чарли</label> </fieldset> </form> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script> $(function() { $('#f1').on('change', 'input:radio', function() { $(this).closest('fieldset').siblings().find('input').prop('checked', false) }) }); </script> Чего-то в этой форме делать "disabled" бессмысленно, так как не даст нужного результата. Но если члены группы будут содержаться в одной таблице, тогда кроме идентификатора и имени, они должны иметь и идентификатор группы, которой принадлежат. При этом идентификатор члена группы будет у каждого уникален. Таблица членов групп: 1, 1, Джон 2, 1, Джек 3, 1, Арнольд 4, 2, Томас 5, 2, Чарли А форма будет возвращать серверу нужное и без всяких скриптов <form id="f1"> <fieldset> <legend>Мачо</legend> <label><input type="radio" name="group" value="1" /> Джон</label> <label><input type="radio" name="group" value="2" /> Джек</label> <label><input type="radio" name="group" value="3" /> Арнольд</label> </fieldset> <fieldset> <legend>Ботаники</legend> <label><input type="radio" name="group" value="4" /> Томас</label> <label><input type="radio" name="group" value="5" /> Чарли</label> </fieldset> </form> Сервер по уникальному идентификатору члена группы может узнать к какой группе он принадлежит. Какие-то сценарии делающие недоступными кнопки в форме такой просто бессмысленны, если уж и щелкать по флажку, то ради только скрывать/показывать ту или иную группу. У вас значения как раз и имеют уникальные идентификаторы, и ваши действия на клиенте не понятно ради чего. |
Понял. А теперь глянь, какой у меня велосипед. Я просто не такой профи, что в интернете на форумах имеется, то я и использую, либо что-то переделываю под себя. https://yadi.sk/d/1goyzXcv3Teuhw, там архив, форма полностью, и обработчик. Интересно было бы услышать твое мнение. Может после проверки всего этого, поскидываешь мне ссылки на те материалы, которые мне нужно выучить и понять. Если конечно же тебе несложно.
|
Цитата:
Цитата:
Цитата:
Ну и самое главное, это учится мыслить предметно. |
Часовой пояс GMT +3, время: 20:33. |