Deprecated: Function ereg() is deprecated in /home/borcsa/domains/undermysite.hu/app_data/.extension/new/security.class.php on line 111

Warning: strtolower() expects parameter 1 to be string, array given in /home/borcsa/domains/undermysite.hu/app_data/.extension/new/formbuilder.class.php on line 603

Warning: Cannot modify header information - headers already sent by (output started at /home/borcsa/domains/undermysite.hu/app_data/.extension/new/security.class.php:111) in /home/borcsa/domains/undermysite.hu/app_data/.extension/new/layout.class.php on line 189
UnderMySite / Webtools & development - FormBuilder (béta) API
Webfejlesztő eszközök, alkalmazások, kellékek ...

FormBuilder(béta 1) API

A FormBuilder(béta) nevű API egy űrlap generáló online eszköz, melynek igénybevételével könnyedén tudunk szinte bármilyen egyéni űrlapot létrehozni. Célom az alkalmazással, hogy megkönnyítsem a designerek életét és szabványosítsam az űrlapokat HTML kivitelezés terén.

Nagy előnye az alkalmazásnak, hogy időt takaríthatunk meg a parancsok írásával, melyhez (még ha csak két-három perccel is) kevesebb idő szükséges, mint ha HTML kódot írnánk, már nyertünk! Továbbá a W3C szabványnak megfelelő HTML kódot. Emellett stíluslapokkal könnyedén formázható és opcionálisan akadálymentes űrlapot kapunk végeredményül. A beépített SPAM védelemmel kizárhatjuk a nem humán felhasználókat, ha erre szükségünk van. A legutolsó változat már megkapta a HTML5, NiceForms 2.0 támogatást és ezen kívül használható még számtalan JavaScript-es eszköz, mit például a FreeRTE szövegszerkesztő. Ami rossz hír, hogy csak azon a programozási nyelven futtatható, amihez van kezelő függvényünk (természetesen lehet hozzá írni), valamint PHP5 szükséges.

Használata és működési elve hasonló alapokon nyugszik, mint a MySQL Query, csak itt nem adatbázis, hanem természetesen űrlappal kapcsolatos műveleteket végezhetünk. Kötegelt futtatást jelenleg nem támogat!

Következő lépésként ejtenék néhány szót a parancssorról, amit Base64 kódolással kell küldenünk a kiszolgáló felé, emellett opcionálisan használható a GZip tömörítő eljárás is. A parancssornál kellő figyelemmel kell lennünk arra, hogy minden függvény között legalább egy space vagy sortörés karaktert tartalmazzon a sztringünk és a függvény neve után közvetlenül következő karakter a nyitó zárójel legyen. A zárójelen belül bevitt adatokat vessző és pontosvessző karakterekkel választhatjuk el (pl: FUNC('data 1', 'data 2'; 'data 3')). A kommenteket /* és */-ek közé kell tennünk, a függvények kiiktatására van még egy lehetséges módunk a // karaktersorozat közvetlenül a függvény neve elé téve (pl: //FUNC('data 1')).

Különösen fontos az idézőjelek szabályos használata, ugyanis, mint említettem a feldolgozó motorja hasonló a MySQL Query-hez és ezért hasonló tulajdonságokkal rendelkezik. Háromféle idézőjel használható: ` " ', valamint mindhárom idézőjel esetén, ha megkívánja a helyzet, ki kell tennünk a már jól ismert "quotes escape" karaktert.
Vannak olyan esetek is, mikor nem szükséges kitennünk az idézőjelet:

Ezekre a szabályokra még visszatérek a példák során, majd kitérek azokra az esetekre is, mikor ajánlott az adaton a Base64 kódolás használata.

Most leírnék egy-két nagyon fontos szabályt.

Mielőtt belekezdenék a függvények ismertetésébe, azelőtt lássuk egy példát. Én ezt a példát csak PHP alatt mutatom be.

<?php
// egyszerű teszt form
$query = "CREATE `newform`
SET(null, null, 'action.php', post)
TEXT(szoveg)
SUBMIT('kuldes', `Küldés`)
BUILD()";
 
$url = "http://webtools.undermysite.hu/api/formbuilder.php?query=";
$user = "free";
$apikey = "free";
 
// API vezérlő/controller hívás
$form = call_api($url.base64_encode(gzcompress($query))."&user=$user&apikey=$apikey");
echo $form;
?>

A call_api() függvény jelen és normál esetben az űrlap html kódjával tér vissza, hiba esetén tömböt kapunk, melyben a hibaüzenetek találhatóak. Az API vezérlő kódot a Fejlesztés/API vezérlő menüpont vagy az alábbi nyomógombra kattintva tudod letölteni a példával együtt.

Letöltés (zip) 

Az alkalmazás béta verzió, ezért még adódhat néhol egy-két felmerülő hiba a használat során. A hibakezelés sem teljesen megoldott.
Kérem ezen hibák jelentését (e-mail), ezzel is segítve a további fejlesztést.

 

Kezelőfüggvények

CREATE
A CREATE függvényünkkel inicializáljuk a készítendő űrlapunkat, majd utána közvetlenül a form azonosítóját (ID-jét) tudjuk definiálni a következő módon.
pl: CREATE `signin`
SET
SET nevű függvényünk kicsit összetettebb, itt az űrlapunk címét, rövid leírását, az action url-t, a küldés metódusát és végül az elküldött adatok kódolási típusát állíthatjuk be (ez utóbbi beállítása nem szükséges, definiálható még: ENCTYPE()).
pl: SET(`Cím`, `Leírás`, `action.php`, `post`)
pl: SET(`Cím`, `Leírás`, `action.php`, `post`, 'text/plain')
pl: SET(null, null, `action.php`, `post`) - a NULL érték esetén nincs bemeneti adat.
ENCTYPE
Ezzel tudjuk beállítani az elküldött adatok kódolási típusát. Definiálása elhanyagolható!
pl: ENCTYPE(text/plain)
STYLE
HTML kódolás kimeneti stílus (alapértelmezett: div). Jelenleg három értéket vehet fel: div, list, niceforms. Definiálása elhanyagolható!
pl: STYLE(niceforms)
TABSIZE
Tabulátor kezdeti méretének beállítása (alapértelmezett: 0). E függvénnyel az egész űrlapot eltolhatjuk jobbra n tabulátor mérettel. Definiálása elhanyagolható!
pl: TABSIZE(2)
AUTOID
Kiteszi minden bemeneti mezőre az automatikusan generált ID-t. Definiálása elhanyagolható!
Felülbírálási lehetőség a ID függvénnyel.
pl: AUTOID()
AUTOFOR
Minden <label> tag FOR tulajdonságához hozzárendeli a generált ID azonosítót. Definiálása elhanyagolható!
E tulajdonság használatához szükségünk van az AUTOID függvény meghívására is!
Felülbírálási lehetőség a FOR függvénnyel.
pl: AUTOFOR()
SIZETO
Minden input beviteli mező size tulajdonságát beállítja az adott értékre.
pl: SIZETO(30)
BUILD
Maga a generátor meghívása. Legutolsó függvényként definiálandó. A függvény paramétert nem vár. E parancs meghívásának elmulasztása esetén nem kapunk vissza eredményt!
pl: BUILD()
FIELDSET
Ez a funkció létrehoz egy úgynevezett n számú űrlap készletet és a benne lévő függvények a <fieldset> és </fieldset> HTML tagek közé kerülnek.
pl: FIELDSET(
  TEXT(szoveg)
  BUTTON(submit, kuldes, Küldés)
)
GROUP
E függvénnyel n számú csoportot hozhatunk létre. A csoport a FIELDSET függvénybe ágyazva is meghívható, fordítva viszont nem!
pl: GROUP(
  BUTTON(submit, kuldes, 'Küldés')
  BUTTON(reset, null, 'Reset')
  BUTTON(submit, 'erase', 'Töröl')
)
pl: FIELDSET(
  TEXT(szoveg)
  GROUP(
    BUTTON(submit, kuldes, 'Küldés')
    BUTTON(reset, null, 'Reset')
    BUTTON(submit, 'erase', 'Töröl')
  )
)
DATALIST !HTML5
A datalistben értékeket tudunk tárolni, majd több helyen is használhatjuk az értékek ezen tömbjét. Két adatot vár, HTML ID azonosító és az értékek.
pl: DATALIST(`lista`, `érték 1 || érték 2 || ... || érték n`)
INPUT
Definiálni tudunk vele egy inputot, ahol az első érték az input típusa, majd a név és az érték. Ezt követi további három bemenet típústól függően. E megoldást nem ajánlom, minden input elemnek van saját függvénye, ezért nem is foglalkozom vele bővebben.
pl: INPUT(image, name, image/img.jpg, 'Image Alt')
pl: INPUT(number, int, null, -100, 100, 10) - min: -100; max: 100; lépés: 10
pl: INPUT(text, text, null, 32) - érték: null; max. hossz: 32
INSERT
Az adott függvényünkkel bármilyen adatot tudunk az űrlapunkba injekciózni.Célszerű minden kiírandó idézőjelet ellátnunk quote escape karakterrel.
pl: " ... INSERT('<input type=\'email\' value=\"name@domain.com\" />') ... " - természetesen itt már a quotes escape karaktert alkalmaznunk kell mindkét idézőjel: ' és " esetében!
pl: " ... INSERT(`<script type=\"text/javascript\">JavaScript</script>`) ... "
pl: " ... INSERT(`<p>\`Bármilyen szöveg\`</p>`) ... "
pl: " ... INSERT(`".base64_encode($big_javascript_code)."`) ... " - alkalmazhatunk Base64 kódolást is.
TEXTAREA
Szövegterület elem létrehozása. A szöveges tartalmat Base64 kódolással is meglehet adni.
pl: TEXTAREA(area, null) - null érték definiálása
pl: TEXTAREA(area, 'Szövegterület tartalma')
pl: TEXTAREA(area, 'LzIEhvqP9guoYtDYDwy14htd7d') - Base64 kódolás
pl: TEXTAREA(area, 40, 6) - méret megadása: 40 oszlop és 6 sor
pl: TEXTAREA(area, 40, 6, 'Szövegterület tartalma')
SELECT
Select elem létrehozása. Két egymás mellett lévő függőleges vonallal kell elválasztanunk őket.
pl: SELECT(sel, `1. lehetőség || 2. lehetőség || 3. lehetőség`)
pl: SELECT(sel, `1. lehetőség || 2. lehetőség || 3. lehetőség`, '2. lehetőség') - kiválasztott érték a '2. lehetőség'
pl: SELECT(sel, `1. lehetőség || 2. lehetőség || 3. lehetőség`, null, true) - itt az utolsó értékkel tudjuk szabályozni a multiple tulajdonságot (true/false), ennek megadása elhanyagolható.
TEXT
Szöveg típusú input elem létrehozása.
pl: TEXT(fullname, 'Teljes név', 32) - érték: adott; max. hossz: 32
pl: TEXT(fullname, null, 10) - érték: null; max. hossz: 10
pl: TEXT(user, 16) - max. hossz: 16
PASSWORD
Password input elem létrehozása. Kezelése hasonló módon zajlik, mint a TEXT függvény.
pl: PASSWORD(name)
HIDDEN
Rejtett input elem létrehozása. Kezelése hasonló módon zajlik, mint a TEXT függvény.
pl: HIDDEN(name)
CHECKBOX
Checkbox input elem létrehozása. Két értéket vár a függvény, a második helyettesíthető null értékkel. Kezelése hasonló módon zajlik, mint a TEXT függvény.
pl: CHECKBOX(name, 'value')
RADIO
Radio input elem létrehozása. Két értéket vár a függvény, a második helyettesíthető null értékkel. Kezelése hasonló módon zajlik, mint a TEXT függvény.
pl: RADIO(name, 'value')
FILE
Fájl input elem létrehozása. Alapesetben egy értéket vár, de megadhatóak még feltölteni kívánt fájl MIME típusok is, amiket vesszővel kell elválasztanunk.
pl: FILE(upload, `image/jpeg, image/png, text/html, audio/mpeg,video/quicktime, text/css`)
NUMBER !HTML5
Number input elem létrehozása. Alapesetben egy értéket vár, de definiálható az érték, min, max és step is.
pl: NUMBER(num, 1, -10, `10`, 1) - min: -10; max: 10; lépés: 1
EMAIL !HTML5
E-mail cím bevitelére szolgáló inputot hoz létre. A böngésző ellenőrzi, hogy a bevitt adat megfelelő E-mail formátumú-e vagy sem. Kezelése hasonló módon zajlik, mint a TEXT függvény.
pl: EMAIL('e-mail')
URL !HTML5
URL bevitelére szolgáló inputot hoz létre, mely jó szolgálatot tesz, ugyanis a focus elvesztésekor ellenőrzi, hogy az adat url-nek néz-e ki. Kezelése hasonló módon zajlik, mint a TEXT függvény.
pl: URL(url)
SEARCH !HTML5
Kereső input elem létrehozása. Kezelése hasonló módon zajlik, mint a TEXT függvény.
pl: SEARCH(src)
TEL !HTML5
Telefonszámok bevitelére szolgáló input elemet hoz létre.
pl: TEL(range)
RANGE !HTML5
Tartományok közötti értékek bevitelét segíti, egy csúszkát jelenít meg.
pl: RANGE(range)
COLOR !HTML5
Szín input elem létrehozása.
pl: COLOR(color)
DATETIME !HTML5
Dátum-idő input elem létrehozása. Dátumok, időpontok bevitelét segíti.
pl: DATETIME(dt)
DATE !HTML5
Dátum input elem létrehozása. Dátumok, időpontok bevitelét segíti.
pl: DATE(date)
TIME !HTML5
Idő input elem létrehozása. Dátumok, időpontok bevitelét segíti.
pl: TIME(time)
DATETIME-LOCAL !HTML5
Dátum-idő input elem létrehozása. Dátumok, időpontok bevitelét segíti.
pl: DATETIME-LOCAL(dtl)
MONTH !HTML5
Hónap input elem létrehozása. Dátumok, időpontok bevitelét segíti.
pl: MONTH(month)
WEEK !HTML5
A Hét input elem létrehozása. Dátumok, időpontok bevitelét segíti.
pl: WEEK(week)
LABEL
Az aktuális input elemnek tudunk <label> cimkét adni.
pl: PASSWORD(jelszo) LABEL('Jelszó')
AFTERLABEL
Az aktuális input elemnek tudunk <label> cimkét adni úgy, hogy a cimke az input mező után kerüljön.
pl: CHECKBOX(php, 'PHP 5') AFTERLABEL('PHP 5')
pl: CHECKBOX(html, 'HTML 5') AFTERLABEL('HTML 5')
DESCRIPTION
Az aktuális LABEL cimkének tudunk rövid leírást adni.
pl: TEXT(nev) LABEL('Név') DESCRIPTION('Írd be a neved')
LEGEND
Az aktuális FIELDSET vagy GROUP elemnek tudunk cimkét adni. Group esetén <label> tagek közé kerül a cím.
pl: GROUP( LEGEND('Csoport') ... ... )
pl: FIELDSET( LEGEND('Fieldset') ... ... )
READONLY
Egy bizonyos input elemet tudunk felruházni ezzel a READONLY tulajdonsággal, ami az adott input elemet csak olvashatóvá teszi.
pl: PASSWORD(jelszo) READONLY()
DISABLED
Egy bizonyos input elemet tudunk felruházni ezzel a DISABLED tulajdonsággal, ami az adott input elemet kikapcsolja/letiltja.
pl: PASSWORD(jelszo) DISABLED()
CHECKED
Egy bizonyos input elemet tudunk felruházni ezzel a CHECKED tulajdonsággal. Csak a CHECKBOX() és RADIO() inputok ruházhatóak fel.
pl: CHECKBOX(check, yes) CHECKED()
SIZE
Egy bizonyos input elemet tudunk felruházni ezzel a SIZE tulajdonsággal, ami az input mező hosszát határozza meg. Opcionálisan megadható értékek: default, false, null.
pl: TEXT(text) SIZE(16)
SAFE
Egy bizonyos nyomógomb elemet tudunk biztonságossá tenni olyan módon, hogy az űrlap elküldéséhez mindenképpen felhasználói beavatkozásra legyen szükségünk. Ez kizárja a nem humán internetes felhasználókat, a SPAM-eket. E funkció használatához szükségünk van a következő kódra: webtoolkit.base64.js. A függvény alapértelmezettként nem vár értéket, de opcionálisan lehet: default, true, null és false (az utolsó kettő érték kikapcsolásra szolgál). Ha a függvényt egyszer meghívtuk, akkor a további nyomógombok esetén is alkalmaznunk kell, kivéve a RESET-nél!
pl: BUTTON(submit, kuldes-process, 'Küldés') SAFE()
pl: SUBMIT(submit-process, 'Küldés') SAFE()
pl: IMAGE(img-process, `img.jpg`, `Image Alt`) SAFE() SAFE(false) - SAFE kikapcsolása
REQUIRED !HTML5
Egy bizonyos input elemet tudunk felruházni ezzel a REQUIRED tulajdonsággal, ami azt mondja ki, hogy az adott input elemet kötelező kitölteni. A böngészőnek nem szabadni elküldenie az űrlapot, amíg a reqirednek jelölt inputok ki nincsenek töltve.
pl: TEXTAREA(text, 30, 6) REQUIRED()
PATTERN !HTML5
Egy bizonyos input elemet tudunk felruházni ezzel a PATTERN tulajdonsággal, amiben megadhatunk egy reguláris kifejezést, amire a bevitt értéknek illeszkednie kell, valamint hiba esetén megjelenítendő üzenetet.
pl: TEXT(numbers) PATTERN(`\d{2}`, 'Hibás formátum!') - a bevitt adatnak számnak és 2 számjegyűnek kell lennie!
EVENTS
Egy bizonyos input elemet tudunk felruházni ezzel a EVENTS tulajdonsággal, amiben megadhatjuk a JavaScript eseményeket. A JS kódot Base64 kódolással is megadhatjuk.
pl: TEXT(name, neved) EVENTS(onfocus, `if (this.value == 'neved') this.value=''`) EVENTS(onblur, `if (this.value == '') this.value='neved'`)
pl: TEXT(name, neved) EVENTS(onfocus, `HRoaXMudmFsdWU9J25ldmVkJ`) EVENTS(onblur, `aWYgKHRoaXMudmFsdWUgPT0`)
AUTOFOCUS !HTML5
Egy bizonyos input elemet tudunk felruházni ezzel a AUTOFOCUS tulajdonsággal, amivel azt tudjuk meghatározni, hogy melyik űrlap elemre kerüljön a focus a lap betöltődésekor. Opcionálisan megadható értékek: true, false, null.
pl: TEXT(name, neved) AUTOFOCUS()
AUTOCOMPLETE !HTML5
Egy bizonyos input elemet tudunk felruházni ezzel a AUTOCOMPLETE tulajdonsággal, aminek bekapcsolásával változtathatjuk meg, hogy a böngésző felkínáljon-e lehetséges értékeket az előzmények alapján. Opcionálisan megadható értékek: true, false, null.
pl: TEXT(name, neved) AUTOCOMPLETE()
LIST !HTML5
Egy bizonyos űrlap elemet tudunk felruházni ezzel a LIST tulajdonsággal, amiben annak a DATALIST elemnek az ID-jét adjuk meg, ahonnan az értékeket fel szeretnénk kínáltatni.
pl: DATALIST(colors, `Kék || Sárga`) TEXT(color) LIST(colors)
FOR
Az aktuális input elem <label> tag-jének a FOR tulajdonságát tudjuk definiálni. Ha nincs definiálva a LABEL függvény, akkor meghívása hatástalan a kimenetre.
pl: TEXT(nev, neved) ID(nev) LABEL(Név) FOR(nev)
ID
Az aktuális input elem azonosítóját tudjuk definiálni.
pl: TEXT(nev, neved) ID(nev)
CLASS
Az aktuális input elem osztályát tudjuk definiálni.
pl: TEXT(nev, neved) CLASS(nev)
BUTTON
Nyomógomb <button> elem létrehozása. Három értéket vár: típus, név és a nyomógomb címe
pl: BUTTON(submit, submit-process, Küldés)
pl: BUTTON(reset, reset-process, Reset)
SUBMIT
Küldés input elem létrehozása.
pl: SUBMIT(submit-process, `Küldés`)
pl: SUBMIT(cancel-process, `Mégse`)
RESET
Reset input elem létrehozása.
pl: RESET(reset-process,`Reset`)
IMAGE
Image input elem létrehozása.
pl: IMAGE(img-process, `img.jpg`, `Image Alt`)

 

Példák

Free Rich Text Editor űrlap létrehozása
Ehhez az eszközhöz nincs külön definiált függvény. A használatához le kell töltenünk a következő oldalról a FreeRTE kódot.

CREATE `FreeRTE-form`
SET(null, null, 'action.php', post)
INSERT('<script src=\"/freerte/js/richtext.js\" type=\"text/javascript\" language=\"javascript\"></script>')
INSERT('<script src=\"/freerte/js/config.js\" type=\"text/javascript\" language=\"javascript\"></script>')
INSERT(`<script>initRTE('<i>This is some <b>preloaded</b> content</i>', '/freerte/css/freerte.css');</script>`)
SUBMIT(rte-process, 'Küldés') EVENTS(onClick, `javascript:alert(getXHTML(trim(document.getElementById(rteFormName).value)));`)
BUILD()

Bejelentkező űrlap létrehozása (HTML5 és Niceforms 2.0 ingénybevételével)

CREATE `signin-form`
SET('Bejelentkezés', 'Bejelentkezéshez töltsd ki a következő űrlapot', 'action.php', post)
/* NiceForms 2.0 stílus beállítása */ STYLE(niceforms)
SIZETO(30)
TEXT(name, 'neved', 30) LABEL(`Név`) DESCRIPTION(`Írd be a neved`) EVENTS(`onfocus`, `if (this.value == 'neved') this.value=''`) EVENTS(`onblur`, `if (this.value == '') this.value='neved'`)
EMAIL('e-mail', 'e-mail címed', 30) LABEL(`E-mail`) DESCRIPTION(`Írd be a mail címed`) AUTOFOCUS() REQUIRED() EVENTS(`onfocus`, `if (this.value == 'e-mail címed') this.value=''`) EVENTS(`onblur`, `if (this.value == '') this.value='e-mail címed'`)
PASSWORD(password,16) LABEL(`Jelszó`) DESCRIPTION(`Írd be a jelszót`) REQUIRED()
SUBMIT(signin, 'Bejelentkezés') SIZE(default)
/* Nyomógomb biztonságossá tevése */ SAFE()
BUILD()

Végül itt egy összetettebb űrlap (HTML5 ingénybevételével)

CREATE `teszt`
SET(null, null, 'action.php', post)
STYLE('div')
TABSIZE(1)
AUTOFOR()
AUTOID()
FIELDSET(
  LEGEND('Adatok')
  TEXT(nev, 32) LABEL(`Név`) DESCRIPTION(`Írd be a neved`) AUTOFOCUS()
  EMAIL('e-mail', 32) LABEL(`E-mail`) DESCRIPTION(`Írd be a mail címed`)
  NUMBER(borntime, 1990) PATTERN(`\d{4}`, 'Hibás formátum!') LABEL(`Szül. idő`) DESCRIPTION(`Írd be a születési éved`)
  FILE(profil) LABEL(`Portré`) DESCRIPTION(`Válaszd ki a képet`)
  Group(
    LEGEND('Nem') DESCRIPTION(`Válaszd ki a nemed`)
    RADIO(sex[], 'Férfi') AFTERLABEL('Férfi')
    RADIO(sex[], 'Nő') AFTERLABEL('Nő')
  )
)
FIELDSET(
  LEGEND('Készségek')
  GROUP(
    LEGEND('Nyelvek')
    CHECKBOX('scripts[]'; 'html5') AFTERLABEL(HTML5)
    CHECKBOX('scripts[]'; 'css') AFTERLABEL(CSS)
    Checkbox('scripts[]', 'php') CHECKED() AFTERLABEL(PHP)
    checkbox('scripts[]', 'js') AFTERLABEL('JS')
  )
  GROUP(
    LEGEND('Filmek')
    CHECKBOX('movies[]'; 'sci-fi') CHECKED() AFTERLABEL('Sci-Fi')
    CHECKBOX('movies[]'; 'action') AFTERLABEL('Akció')
    Checkbox('movies[]', 'krimi') AFTERLABEL('Krimi')
    checkbox('movies[]', 'horror') AFTERLABEL('Horror')
  )
)
GROUP(
  SUBMIT(submit-process, 'Küldés') SAFE()
  RESET(reset-process, 'Reset')
)
BUILD()

Remélem mindenki számára érthető volt az eszköz leírása. További információért vedd fel velem a kapcsolatot.

FormBuilder online teszt

Űrlap generátor

Függvényreferencia

Globális
CREATE
SET
ENCTYPE
STYLE
TABSIZE
AUTOID
AUTOFOR
SIZETO
BUILD
Struktúra
FIELDSET
GROUP
Lista definició
DATALIST
Input
INPUT
INSERT
TEXT
TEXTAREA
SELECT
PASSWORD
HIDDEN
CHECKBOX
RADIO
FILE
NUMBER
EMAIL
URL
SEARCH
TEL
RANGE
COLOR
DATETIME
DATE
TIME
DATETIME-LOCAL
MONTH
WEEK
Címke
LABEL
AFTERLABEL
DESCRIPTION
LEGEND
Tulajdonság
READONLY
DISABLED
CHECKED
SIZE
SAFE
REQUIRED
PATTERN
EVENTS
AUTOFOCUS
AUTOCOMPLETE
LIST
FOR
ID
CLASS
Nyomógomb
BUTTON
SUBMIT
RESET
IMAGE