|
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 20
|
||||||
Работа с формами15.06.2015, 09:55. Показов 1185. Ответов 12
Метки нет (Все метки)
Есть форма, позволяющая указать состав изделия и материалы для каждой детали, условно выглядит так:
Радиокнопки указывают вариант исполнения какой-то детали, например застежки. Если все чекбоксы включены, то форма отдает обработчику одинаковое количество значений detail и material если какие-то из чекбоксов отключены, то обработчику значений detail передается меньше чем значений material на количество отключенных чекбоксов. Как сделать так, чтобы если чекбокс отключен (и detail не передается обработчику), то и соответствующий этому чекбоксу material тоже обработчику не передавался. Чтобы обработчику всегда уходило равное количество значений detail и material? Добавлено через 20 часов 55 минут К сожалению там ничего похожего нет. Теоретически я придумал, как упростить задачу, надо проверять состояние каждого чекбокса, и если он включен, - то его value должно быть равно указанному (как в примере), если он выключен, его value должно быть равно нулю, тогда обработчику всегда будет передаваться одинаковое количество detail и material. вопрос, как организовать такую проверку и установку значений чекбоксов? если можно, то на примере приведенной выше формы.
0
|
||||||
| 15.06.2015, 09:55 | |
|
Ответы с готовыми решениями:
12
Работа с формами Работа с формами Работа с формами |
|
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
|
|
| 15.06.2015, 10:38 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 20
|
|
| 15.06.2015, 10:43 [ТС] | |
|
Логично. Можно в виде конкретного кода? т.к. я ноль.
0
|
|
|
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
|
|||||||
| 15.06.2015, 10:55 | |||||||
1
|
|||||||
|
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
|
||||||
| 15.06.2015, 11:01 | ||||||
|
Я бы посоветовал не маяться и использовать для этого чуть более сложную структуру, но более подходящую. Я сейчас говорю о data-bindinge. Связывание данных + шаблонизатор. Шаблонизатор будет решать, что нужно показывать, а что нет, что нужно дизейблить, а что нет. Данные пусть будут в виде объекта, которые и является правилом для шаблона. Это намного упростит управление и отображение элемента.
Шаблонизатор можно взять например этот Связывание написать свое ( довольно простое, зато не придется качать для этого фреймворк или вчитываться в Object.observe )
Как то так
1
|
||||||
|
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 20
|
|
| 15.06.2015, 11:05 [ТС] | |
|
На самом деле важно, чтобы с формы отдавалось равное количество detail-ов и material-ов, чтобы потом из них построить двумрный массив.
0
|
|
|
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
|
|||||||||||
| 15.06.2015, 11:30 | |||||||||||
|
dpts, вот пример, использовал JQ 2.1.1
Без шаблонизаторов и выкрутасов
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 20
|
|
| 15.06.2015, 11:34 [ТС] | |
|
Для Lazy_Den.
Благодарю, работает. Только с самого начала не подумал, получается что к каждому чекбоксу с "руковами" нужно приделать еще по 1 input type="hidden" name="detailmod" value="0" (чтобы обработчику на сервере полноценный массив передавался) как доработать вашу функцию, чтобы этот hidden тоже отключался вместе с material-ом? ps. я полный ноль в js
0
|
|
|
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
|
||
| 15.06.2015, 23:42 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 20
|
||||||
| 16.06.2015, 05:13 [ТС] | ||||||
|
Для Lazy_Den:
Но тут заметил еще одну тонкость, если в первых двух деталях, которые "рукава" поля detailmod скрытые, то в последнем, про "молнию" - это радиокнопки. Может я не совсем корректно с самого начала объяснил, чего пытаемся добиться, попробую еще раз. Включая или отключая чекбоксы пользователь говорит какая деталь жилетки ему нужна или не нужна (detail), из чего она должна быть сделана (material) и какой у нее функционал/вариант исполнения, если он есть (detailmod). Если все чекбоксы включены, серверному скрипту передается три тройки значений detail | detailmod | material, которые серверный скрипт простым циклом может записать в массив и дальше обрабатывать как-то, Беда в том, что если чекбокс выключен то он вообще на сервер не передается. То есть допустим если первый чекбокв выключен, на сервер о нем уйдет не тройка detail | detailmod | material, а только пара detailmod | material, соответственно простым циклом записать серверным скриптом полученные данные в массив не получится. Поэтому и нужен скрипт, который будет контролировать каждый чекбокс и если чекбокс выключен, - выключать передачу на сервер связанные с ним detailmod и material. Деталей из которых состоит изделие может быть и больше трех, и вариантов исполнения каждой детали может быть больше 3. Есть изделия из десятка деталей, у каждой из которых 10-15 вариантов исполнения.
0
|
||||||
|
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
|
|||||||||||||||||
| 16.06.2015, 07:02 | |||||||||||||||||
Сообщение было отмечено Thisman как решение
Решение
UPD В общем, еще раз испугался вашей разметке, подумал, что дальше может быть еще "круче" и предлагаю такой вариант, в надежде, что хоть группы связанных элементов, будут оставаться в одном <tr>:
1
|
|||||||||||||||||
|
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 20
|
|
| 16.06.2015, 08:06 [ТС] | |
|
Для Lazy_Den.
Ну да - разметка осьминожья. Суть в том, что пытаемся немного докрутить давным-давно самописную CRM, сделанную на ASP+VBscript. Добавлено через 52 минуты Работает. Спасибо большое/
0
|
|
| 17.06.2015, 22:50 | |
|
Не по теме: dpts, конечно дело не моё, но всё-таки можно использовать [nick]Lazy_Den[/nick],
0
|
|
| 17.06.2015, 22:50 | |
|
Помогаю со студенческими работами здесь
13
Различные операции с модальными формами Добавление таблицы с 5ю формами по нажатию на кнопку. JS Паттерны для работы с html - формами
Работа с формами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|