Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Сделал вот плагин для JQuery (зависимости элеменов форм)
цитата
14/08/08 в 04:43
 Formator
Часто пишу интерфейсы (админки и т.п.), порой довольно сложные. Постоянно сталкиваюсь с проблемой вложенности, когда элементы форм зависят друг от друга. Если сталкивались, то понимаете, какой геморный код надо писать, чтобы вывести и спрятать те или иные элементы при включении/выключении или определённых значениях других. "Если чекбокс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

Надеюсь, кому-нибудь пригодится icon_smile.gif

Оффтопик: Надо бы наверно завести блог, а то столько всего полезного накопилось, что не жалко для народа
цитата
14/08/08 в 04:55
 freeek
пригодится smail54.gif icon_smile.gif
цитата
14/08/08 в 07:49
 Sterx
интересно
цитата
14/08/08 в 08:44
 dDan
Да бро отличный плагин спасибо. Не придеться ебстится с toggle
цитата
14/08/08 в 10:52
 Core
а посоветуйте чтиво по JQuery, а то я AJAX элементы сам писал простенькие, но чувствую, что должно быть какое-то более простое средство разработки.
цитата
14/08/08 в 11:30
 ibiz
респект ТС, какраз нужно было нечно подобное в форме регистрации icon_smile.gif


Эта страница в полной версии