Jump to content
php.lv forumi

Teksta lauks, kas ļauj ievadīt tikai skaitļus


GedroX

Recommended Posts

Uzrakstīju tādu js skriptiņu (jaunā versija šeit), kas pieļauj tikai skaitļu (reālu, veselu, pozitīvu vai negatīvu) ievadi teksta laukā. Paste vēl nefiltrē. Varbūt vēlāk.

 

P.S. Ja kādam noder, pasakiet paldies. =P

 

Kas atradīs, kas Opera-i nepatīk, kad kursors atrodas pašā sākumā (metode expand izmet kļūdu), tam baranka no manis. ^_^

 

Rediģēts: !!!!! Operas bugs apiets !!!!!

 

Rediģēts: !!!!! Jaunais skripts tagad filtrs balstīts uz RegExp !!!!!

Edited by GedroX
Link to comment
Share on other sites

Dikti nesmuki, ka nav visur lietots var keywords. Ja jau vienā lietā lieto, tad visur vajag, citādi kods ne pēc kā neizskatās.

Vēl ieteikums - likt mierā tos selection range's. Tev taču nevajag daļu no lauka vērtības izgriezt, bet gan visu kopā vajag paņemt - input_lauks.value un miers. Kā arī - lietot regexpus, lai pārbaudītu vai teksta formāts ir atbilstošs, būs gan daudz lasāmāk, gan īsāk.

 

Ja būtu Opera, tad patestētu, bet to taču vienkārši var noskaidrot uzliekot pāris alertu un redzot, kurā vietā skripts izdos undefined ārā. (vai gadījumā nebija tā, ka Opera neatbalsta tos visus selection range's?)

Link to comment
Share on other sites

> Dikti nesmuki, ka nav visur lietots var keywords

 

Pats nekad neizmantoju. Gabals bija no neta. Bet tas šobrīd nav galvenais.

 

> Vēl ieteikums - likt mierā tos selection range's. Tev taču nevajag daļu no lauka vērtības izgriezt, bet gan visu kopā vajag paņemt - input_lauks.value un miers.

 

Lieta tāda - divi punkti (decimālatdalītāji) skaitlī nevar būt. To mans skripts apzinās. Bet es jau varu iezīmēt kādu teksta daļu, kurā IR punkts (tas tiks pārrakstīts) un skriptam IR jāļauj punktu ierakstīt.

 

> Kā arī - lietot regexpus, lai pārbaudītu vai teksta formāts ir atbilstošs, būs gan daudz lasāmāk, gan īsāk.

 

Ja es pārbaudu nevis nospiesto, bet gan ievadīto, tad būs teksta ievades lauka "mirgošana". Parādās - pazūd... Stulbi izskatās. Man ir ideja, kā varētu vienkāršāk ar regExp-iem, bet tā nav tik primitīva, kā tu iedomājies =)

 

> Ja būtu Opera, tad patestētu, bet to taču vienkārši var noskaidrot uzliekot pāris alertu un redzot, kurā vietā skripts izdos undefined ārā. (vai gadījumā nebija tā, ka Opera neatbalsta tos visus selection range's?)

 

Tur tā lieta, ka exception viņai krīt laukā tikai, kad kursors atrodas input-a sākumā. Mystics.

Link to comment
Share on other sites

Pats nekad neizmantoju. Gabals bija no neta. Bet tas šobrīd nav galvenais.

Slikti, tu piekop nelabu programmēšanas stilu - tu visus mainīgos definē kā globālus.

Lieta tāda - divi punkti (decimālatdalītāji) skaitlī nevar būt. To mans skripts apzinās. Bet es jau varu iezīmēt kādu teksta daļu, kurā IR punkts (tas tiks pārrakstīts) un skriptam IR jāļauj punktu ierakstīt.
Nekā nesapratu.

 

Ja es pārbaudu nevis nospiesto, bet gan ievadīto, tad būs teksta ievades lauka "mirgošana". Parādās - pazūd... Stulbi izskatās. Man ir ideja, kā varētu vienkāršāk ar regExp-iem, bet tā nav tik primitīva, kā tu iedomājies =)

Tieši tā jau arī jādara - jāpārbauda uzrakstītais. Un ar regexpiem tas ir ļoti vienkārši, pats tā visulaiku daru. A nevis n-tos if nosacījumus rakstu.

 

Tur tā lieta, ka exception viņai krīt laukā tikai, kad kursors atrodas input-a sākumā. Mystics.

Kodu tak padebugo, nevis kursoru pārvieto.

 

Pie tam - labais GUI veidošanas stils (usability) saka, ka vajag atļaut visu ko lietotājam ievadīt datu ievades lauciņos lauciņā, bet sākt bļaustīties un uzrādīt kļūdas tikai tad, kad tiek apstiprināts datu ievads (webā piemēram pie formas submitošanas).

Link to comment
Share on other sites

Slikti, tu piekop nelabu programmēšanas stilu - tu visus mainīgos definē kā globālus.

Paldies! Godīgi sakot pats nezināju atšķirību.. o_O

 

Nekā nesapratu.
Žēl...

 

Tieši tā jau arī jādara - jāpārbauda uzrakstītais. Un ar regexpiem tas ir ļoti vienkārši, pats tā visulaiku daru. A nevis n-tos if nosacījumus rakstu.

Tagad arī ir uz RegExp. Un viss skaisti, tīri, nekādas kursora lēkāšanas pie nekorektas ievades.

 

Kodu tak padebugo, nevis kursoru pārvieto.
Tā arī darīju, starp citu. Kāpēc te visi brauc augumā. Za*** totāli. Bet kad šiem prasa kautko (ko pats neesmu nekad īsti darījis), šie mēmi un saka, lai paši tiekot galā. Funking stulbi! Iesakiet kādu ārzemju PHP forumu. Tinos prom.

 

Pie tam - labais GUI veidošanas stils (usability) saka, ka vajag atļaut visu ko lietotājam ievadīt datu ievades lauciņos lauciņā, bet sākt bļaustīties un uzrādīt kļūdas tikai tad, kad tiek apstiprināts datu ievads (webā piemēram pie formas submitošanas).

A ja nu klients pieprasa? ;) Nu tomēr laukā `cena` nevajadzētu rakstīt kkādas muļķības.

Link to comment
Share on other sites

par labo usera interfeisa veidošanas stilu.. man atkal liekas ka labs variants ir ļaut rakstīt jebko, bet tikko ieraksti muļķības tā ievades lauks maina krāsu - piem. kā http://www.nordlb.lv/lv/tools/calculators/loancalc/

 

jo:

1. userim nerodas iespaids ka būtu tā kā bez rokām, jo nevar neko ierakstīt.

2. normāls useris, izlabos ievades kļūdu un tad spiedīs submitu- ietaupās usera laiks un serverim nav lieku reizi jāsaka ka saņemtie dati netika cauri validācijai.

3. sliktais useris, kas speciāli gribēs burtus cenas vietā iedabūt, tāpat apies javascriptu un aizsūtīs burtus uz serveri.

Edited by v3rb0
Link to comment
Share on other sites

v3rb0: es tieši tā arī gribēju pateikt, laikam par striktu pateicu, ka nekādīgi nedrīkst rādīt userim, ka kļūda. Biju domājis tādu iekrāsošanu tieši var, bet nevajag aizliegt kautko sliktu ievadīt vai mest messageboxus ārā.

 

GedroX: klients ne vienmēr zin, ko viņš grib (viņš tikai iedomājas, ka zin). Vajag mācēt paskaidrot kā ir labāk.

 

P.S. [0-9] == \d

Link to comment
Share on other sites

×
×
  • Create New...