Добавяне на автоматично подаване към формуляра с помощта на Chaos Tools
Автоматичното подаване на формуляра е доста удобно нещо в някои ситуации. Например, ако трябва незабавно да опресните страницата, като изберете опция от падащия списък, без да принуждавате потребителя да кликва върху бутоните. Освен това бутоните (бутонът) могат дори да бъдат скрити, за да намалят визуално формата.
Доста удобни инструменти за добавяне на автоматично изпращане са налични в модула Chaos Tools. С него трябва да направите само три прости стъпки, за да получите резултата.
Първа стъпка
Добавете js от ctools, който директно изпраща формата, когато желаният елемент се промени:
Стъпка втора
Сега трябва да решим кой елемент от формуляра ще се задейства автоматично изпращане. За да направите това, добавете следния атрибут FAPI към елемента от формуляра:
Пример за избор:
Ако искате формулярът да бъде изпратен автоматично при промяна на което и да е поле, добавете следните параметри към формуляра (в този случай не е необходимо да закачате нищо върху елементите на формуляра):
Съответно кодът на формуляра ще изглежда по следния начин:
Стъпка трета
Сега трябва да създадете бутон и да посочите, че след промяна на елемент от формуляра той трябва да бъде щракнат автоматично. За да направите това, върху бутона е закачен следният атрибут:
Ако бутонът се обработва от ajax, тогава се добавя друг клас:
В резултат бутонът изглежда така:
Това е всичко, приложено е автоматично подаване.
Послеслов
Ако разработвате модул, не забравяйте да добавите зависимост към него Инструменти за хаос:
Понастоящем автоматичното подаване се поддържа за следните елементи: изберете, радио, квадратче за отметка и текстово поле. В бъдеще се планира да се добави поддръжка за елементи от HTML5.
Подобни материали
Коментари
Ммм, защо този метод е за предпочитане пред собствените му прехващачи на събития, използващи js и jquery? По мое мнение, с ctools по-малко гъвкави и по-малко възможности.
@emzzy,
1. Какво е за предпочитане? Време за разработка. Прекарвам за автоматично изпращане
20 секунди. Защо да пишете мотора си, когато вече има решение?
2. По-малко гъвкав ли е с ctools? Каква друга функционалност искате за автоматично изпращане?
@SplasH
такъв "мотор" е написан не по-дълго от автоматично подаване с ctools. Вие сами написахте „В момента автоматичното подаване се поддържа за следните елементи: изберете, радио, квадратче за отметка и текстово поле.“ - това е по-малко гъвкаво. По-трудно е да се поддържа кодът, ако част от него е внедрена от страна на сървъра, а друга от страна на клиента. Виждам смисъла в използването на ctools за неща, които наистина са трудни и отнема много време (например многоетапни формуляри или модални прозорци), но не и за това.