Jump to content
php.lv forumi

onChange event


andrisp

Recommended Posts

Ir forma ar daudz <input type="text"> elementiem, kuriem klāt ir

sakabināti onChange events. Aptuveni šādi:

<input type="text" onchange="return check(this); " />

 

onChange eventam darbība ir tāda, ka viņs aktivizējas, kad es pēc izmaiņu veikšanas attiecīgajā <input type="text" /> uzklišķinu kautkur citur lapā vai uz cita <input type="text" />

 

Problēma ir tur, ka onChange events neaktivizējas, ja es pēc <input> izmainīšanas pa taisno spiežu uz Submit pogas. It kā <input type="text"> izmaiņas ir notikušas, bet events netiek palaists (izsaukts). Un forma nosubmitojas - nepareiza.

Link to comment
Share on other sites

A kam tev vajag uz onchange pārbaudīt validāti?

Parasti to dara uz onsubmit formas elementam, un ja forma nevalīda, tad paziņo kļūdu un nesubmito tālāk.

 

P.S. Tik atceries, ka tāpat nāksies php galā visu pārbaudīt, jo JS var vienkārši atslēgt.

Link to comment
Share on other sites

A kam tev vajag uz onchange pārbaudīt validāti?

Parasti to dara uz onsubmit formas elementam, un ja forma nevadīda, tad paziņo kļūdu un nesubmito tālāk.

 

P.S. Tik atceries, ka tāpat nāksies php galā visu pārbaudīt, jo JS var vienkārši atslēgt.

 

Man ir tāda WEB aplikācija, kur galvenais ir nodrošināties pret lietotāja nejaušajām kļūdām. Ja viņš pacentīsies un izslēgs javascript, tad pats vainīgs. Lapu nonest tāpat viņs nevarēs (cerams :)).

 

onChange ir vajadzīgs tāpēc, ka vajag <input type="text" /> validāti pārbaudīt on-the-fly.

 

andrisp--> pieliec klaat "blur" apstraadi --> ja tiks aktivizeets cits elements tad tiks izsaukta shii notikuma apstraade ....

 

Īsti nesaprotu kā viņš jālieto. Mēģināšu pagūglēt.

 

Nomainīju onchange pret onblur, un drošības pēc vel <input type="submit" /> elementam pieliku klāt onsubmit="this.focus(); ". Tagad ja tiek nospiesta Submit poga, izmetas alerts, ja kāds no laukiem ir nepareizi aizpildīts, vienīgi forma jau tāpat nosubmitojas.

 

Vai var uztaisīt, lai onsubmit pirms atgriež true (un forma nosubmitojas) pārbauda vai kāds no onblur nav izmetis alert, par to, ka attiecīgais <input type="text" /> elements ir nepareizi aizpildīts ? Cerams domu sapratāt.

Edited by andrisp
Link to comment
Share on other sites

dari apmeeram shaadi:

kad nospiezj submitu --> aizmet uz f-ju kas paarbauda formas validaati

visus laukus peec kaartas

ja kaads no laukiem ir tuksh tad izmet alertu un ar tobashu blur/focus aizmet uz doto lauku

ja visi lauki ir OK. tad f-ja nosubmito formu ....

viss...

principaa taa f-ja apmeeram shaadi (Pseido kodaa)

...

if( lauks.value ='')

{

aleert ('pashol nah lauks ir tuksh');

lauks.focuss.....

return false;

}

utt

tikai beigaas foma.submit.....

return. true

-------

apmeeram shaadi

edit:

nush vel variants:

izmanto submit vietaa parastu pogu kuru nospiezjot tiek izsaukta f-ja (teiksim blah)

 

function blah()
{
if....i
Var mesag='Tu ko? Gribi shos datus  apstraadaat?';
var blahblah=confirm(mesag);
if (blahblah)
{
vajadziigaa_forma.submit()
}
else
{
alert ('Patc vainiigs ka negribi');
}

}

--------

:)

Edited by Grey_Wolf
Link to comment
Share on other sites

Tieši tā, andrisp!! Šāda validācija ir ļoti kaitionša!

Labais stils GUI veidošanā (man liekas es kautkur to teicu jau) saka, ka nevajag nekādus paziņojumus/aizliegums rādīt lietotājam formas editēšanas laikā. To vajag tikai uz apstiprināšanu (submitošanu) darīt! Labākajā gadījumā, ko realtaimā var darīt, ir iekrāsot piemēram lauku sarkanu, vai izsaukuma zīmi/krustiņu blakām parādīt, bet nekādā ziņā nerādīt alertus vai ko tml. Tas kaitina.

Lietotājam vajag atļaut izdarīt visu ko viņš grib, un tikai tad sākt pārbaudīt, kad viņš ir beidzis.

Link to comment
Share on other sites

tev ir taisnība,

bet manā gadijumā tur var būt pat 200 inputi nu vairāk, katram var būt atšķirīgas atļautās vērtības.

piemēram, vienam inputam vērtības var būt tikai 100 .. 200 .. 300 ...... 1600.. 1700

citam atkal 30 .. 60 .. 90 utt. līdz kautkādam noteiktam skaitlim, kuram jādalas ar 30 bez atlikuma.

 

un vispār man katram inputam klāt vēl ir arī '-' un '+' zīmītes ar kurām var samazināt vai palielināt inputa vērtību.. tā on-the-fly validācija ir tiem, kas sadomāsies ciparus vadīt ar roku..

Link to comment
Share on other sites

andrisp--> es piekriitu bubu , it iipashi ja tev ir daudz tie lauki, tad var rasties (un 100% radiisies), ka lietotaajs, netceras/nezin preciizi ievadaamos datus.... kameer vinsh domaa (paklikskjina uz citiem laukiem)

lec tas alert :(

kaada tev starpiiba?

uzraksti mazinju f-ju kas pamaina text kraasu ;)

un alert vietaa izsauc to (teiksim nekorekti dati sarkans, korekti zaljsh)

Lietotaajam prieks un arii tevi kaa programmetaaju noveertees stipri augstaak :)

Link to comment
Share on other sites

×
×
  • Create New...