Form submit JS - best practices
6 naročnikov
6 naročnikov
Pozdravljeni!
Pri programiranju aplikacije, sem naletel na problem, ki v bistvu to sploh ni ampak bi rad slišal le mnenje oz. vaše izkušnje!
Torej zanima me sledeče. Kateri je po vašem mnenju najboljši način potrjevanja html obrazcev oz. podajanje vrednosti, ki jih je vnesel uporabnik, JavaScript funkcijam?
- z jQueryem in funkcijo .submit ter uporabo
- onClick event npr. poslji(document.getElementbyId('inputid).value, ...) ali polsji(this)
- onSubmit(this) v form tagu in potem sklicevanje form.inputName.value?
- tretja možnost
9 odgovorov
Verjetno misli validacijo podatkov, ki jih pošilja. Če prideš skozi z JS je najboljše, da si napišeš par standardnih funkcij, ki preverjajo vsebino polj: numeric, integer, email, www,...
Včasih samo s kodo na klientu ne gre, npr. moraš preveriti ali vpisano uporabniško ime že obstaja. Takrat uporabiš ajax, jquery se mi zdi zelo dobra izbira.
Selaz, pomoje je bv, da pišeš javascript validacijo + PHP validacijo. Naredi raje on submit jquery('form').serialize() in pošlji to preko AJAX-a PHP-ju. potem submitaš in še enkrat preveriš formo!!!
v PHP jo moraš v vsakem primeru preveriti ponovno ker se da clientside skripte hacknit!
tako da client side v končni fazi niti ne vem kaj bi preverjal, če že preverjam kaj, preverjam z ajaxom kot so že rekli, username če je OK, email če še ni registriran...
Ajax ni nikoli samoumevna odločitev(vsaj pri meni ne). Kaj bi kompliciral z ajax validacijo npr. pri pošiljanju komentarjev pod članki, preveriš zgolj podatek z enim dobrim RegEx-om v JS in ne dovoliš vpisa, če kaj ni v redu. Se pa strinjam, da je treba v vsakem primeru pred vpisom v bazo stvar še enkrat preveriti na server strani.
Želim samo povedati, da ajax ni edini pravi način. Navsezadnje je ajax (pri validaciji) dodaten request do web serverja in pri večjih aplikacijah to še kako šteje.
Pri clientu uporabiš osnovni JS validation, ob submitu pa seveda še v PHPju.
Lahko si pomagaš s ketchup pluginom za jQuery (morda je kakšen še boljši).
http://demos.usejquery.com/ketchup-plugin/
Očitno sem nelogično zastavil vprašanje. Nisem spraševal toliko po tem kakšen je najboljši način validacije.
Če razložim "po domače". V obrazcih imaš ponavadi neka vnosna polja, izbirna polja, ... Zanima me kateri je najboljši način, da vrednosti iz teh polj preneseš v JavaScript funkcijo, da lahko potem izvajaš validacijo ali kaj tretjega...
Sprašujem zaradi tega, ker imam obrazec, ki ima razmeroma veliko vnosnih polj in drugih stvari pa bi rad našel najbolj optimalen način za prenos vnešenih vrednosti do java script funkcij(e) oz. za dostop do teh vrednosti. shy :) hehe :)
Tako kot ti je Roky predlagal, celotno formo serializiraj z jquerijem in server side validiraj podatke in preko ajax-a izpiši napake zraven fieldov.
Če pa ima user javascript izklopljen pa lahko isto metodo uporabiš za validacijo v POST-u.