С нами с 03.05.07
Сообщения: 801
Рейтинг: 825
|
Добавлено: 14/08/08 в 04:43 |
Часто пишу интерфейсы (админки и т.п.), порой довольно сложные. Постоянно сталкиваюсь с проблемой вложенности, когда элементы форм зависят друг от друга. Если сталкивались, то понимаете, какой геморный код надо писать, чтобы вывести и спрятать те или иные элементы при включении/выключении или определённых значениях других. "Если чекбокс1 включён и значение поля2 равно тому-то, то показать форму3, иначе ..." и так далее. Прострой пример использования - различные опросники, анкеты, визарды и т.п.
Попробовал решить эту проблему, подойдя с совершенно другой стороны. Чтобы привязать один элемент к другому, надо просто сослаться на него таким образом: if (#id_элемента==значение) Если выражение верно, то элемент отображается. Если неверно - то скрывается. Всё делается автоматом. Сами выражения пишутся внутри этих же элементов:
Код: |
<input type="checkbox" id="cb1"> <input type="checkbox" class="if (#cb1)" id="cb2"><input type="checkbox" class="if (#cb2)" id="cb3">
|
Вот так, через атрибут class. Как видно, чекбокс 2 смотрит, включён ли чекбокс 1, а чекбокс 3 смотрит на чекбокс 2. Таким образом, если не включён чекбокс 1, то последние два не отображаются и т.п. по цепочке. Выражения могут быть с несколькими условиями: if((#элемент1==значение1 || #элемент1==значение2) && #элемент2==значение3) и т.п.
На элементы можно без проблем накладывать свои классы, только делать это надо вначале, перед "if"
Обращаться можно по имени ($имя_элемента) и по id (#id_элемента). Обращение по id предпочтительнее, т.к. оно не тормозит в IE. Обращение по имени лучше использовать только при работе с radio, когда у нескольких элементов может быть одно имя, или когда западло проставлять id.
Инициализация всего:
Код: | $(".if","#ид_формы").easyForm(); |
Комплексный пример работы: http://cjlog.com/botva/forms.html (тут в html source можете глянуть, на сколько всё просто)
Исходник: http://cjlog.com/botva/jquery.easyForm.js
Надеюсь, кому-нибудь пригодится
Оффтопик: Надо бы наверно завести блог, а то столько всего полезного накопилось, что не жалко для народа
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 14/08/08 в 04:55 |
пригодится
|
|
x100BTC.com Промокод SudDude009 подключить бесплатно и навсегда.
|
0
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 14/08/08 в 07:49 |
интересно
|
|
|
|
С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430
|
Добавлено: 14/08/08 в 08:44 |
Да бро отличный плагин спасибо. Не придеться ебстится с toggle
|
|
|
|
С нами с 07.09.03
Сообщения: 4115
Рейтинг: 2060
|
Добавлено: 14/08/08 в 10:52 |
а посоветуйте чтиво по JQuery, а то я AJAX элементы сам писал простенькие, но чувствую, что должно быть какое-то более простое средство разработки.
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760
|
Добавлено: 14/08/08 в 11:22 |
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 14/08/08 в 11:30 |
респект ТС, какраз нужно было нечно подобное в форме регистрации
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |